安装Redis
Readis的优点
- Reids是非关系型数据的代表,里面储存的数据类型十分多样
- Reids是内存型数据,读写快速
- 应用十分广泛
安装Redis
# 添加EPEL仓库,更新yum源 sudo yum install epel-release sudo yum update # 安装Redis数据库 sudo yum -y install redis # 启动Redis服务 sudo systemctl start redis # 进入Redis命令行模式操作 redis-cli # 退出redis exit
配置redis
# 进入到配置文件 sudo vim /etc/redis.conf # 一般而言,配置文件会在这个路径下 # 允许被远程连接,注释掉这一行 # bind 127.0.0.1 # 为redis设置密码,取消注释 requirepass foobared # foobared为密码,可以自己更改 # 保存后重启 sudo systemctl restart redis # 因为设置了密码,所以有任何操作出现了 (error) NOAUTH Authentication required # 可以先输入密码,1223456是具体的密码 auth 123456
注意一下,进入到redis命令模式后我们要输入auth 123456 后面的操作就不用再输入密码了
判断redis是否正常运行,我们输入ping来看看
如果回复pong就是运行成功了
Reids分区
如同是MySQL里分库一样,对不同的数据进行分区操作,有利于提高数据库的效率。通过利用多台计算机内存的和值,允许我们构造更大的数据库
# 选择redis的分区 select index # index是分区的编号,只能是数字,默认从0开始,一般最大编号是255
Redis数据类型
有string(字符串)、 hash(哈希)、 set(集合)、list(链表)、sorted set,
图中的写法是让我们可以理解大概是啥类型
啥是链表
链表包含列表
列表形式(通过索引访问元素)
方向是从左往右,而链表是从左往右和从右往左的
Redis操作
string(字符串)
redis中,所有的数据形式都是由键值对组成的,即为 {key: value} ,其中说的数据类型,都是针对值而言
# 获取所有的键,星号* 表示任意匹配 keys * keys 1*
# 设置值 set key value
# 获取指定的值 get key
# 将给定key的值设为value,并返回key原来的值 getset key value
# 获取一个或多个给定key的值,键之间以空格隔开 mget key1 key2
# 设置值,并将key的过期时间设为n(以秒为单位) setex key n value
当这个key超过这个时间,就会不存在,为啥会这样呢 ?
原因是redis的全称为内存型数据库,数据本身是保存在硬盘里面的,当启动redis 就会把所有数据写到内存里面去,结束就会保存到硬盘里面
# 当key不存在时,设置值 setnx key value
# 返回key所储存的字符串长度 strlen key
# 同时设置一个或多个键值对 mset key1 value1 key2 value2 # 同时设置一个或多个键值对,当且仅当所有给定key都不存在 msetnx key1 value1 key2 value2
需要注意的是使用msetnx要保证所有的可以的key不存在
hash(哈希)
哈希里面包含字典
字典保存的形式是{key : value}
# 将哈希key中的字段field设为value hset key field value
# 获取存储在哈希中指定字段的值 hget key field
查看h_num1 中的field字段的值,我们可以理解为h_num1={“field”: “100”}
# 获取在哈希中指定key的所有字段和值 hgetall key
# 获取所有哈希表中的字段 hkeys key
# 查看哈希key中指定的字段是否存在 hexists key field
存在返回1,不存在返回0
# 取哈希中所有值 hvals key
注意一下key和filed是不一样的,key是哈希的名称,filed是哈希里面的字段名
# 删除一个或多个哈希字段 hdel key field1 field2
# 获取哈希中字段的数量 hlen key
# 获取哈希中字段的数量 hlen key # 获取所有给定字段的值 hmget key field1 field2 # 只有在字段field不存在时,设置哈希字段的值。 hsetnx key field value