redis是一个基于内存的数据库
常用于缓存
redis主要是用于缓存,但作为数据库它也有其基础的用法和功能
- redis-cli 终端打开redis
- redis-cli -p 端口 打开指定端口的redis
- info replication 查看redis信息
list列表
- lpush从头添加
- rpush从尾添加
- lpop从头删除
- rpop从尾删除
- lrange查看列表元素,-1表示最后一个元素
- ltrim删除范围外的元素
set集合
redis默认存储string类型,存储的都是可序列化的,存中文读取会显示16进制的中文
- sadd添加集合元素
- smembers查看集合元素
- sismember判断是否集合元素存在
- srem删除集合元素
- flushall删除所有键值对
- exists判断是否存在
set集合元素不能重复
sortedset有序集合
分数可以重复
sortedset是元素是一个分数对一个元素的集合
- zadd添加
- zrange查看元素,添加withscores可查看元素加分数
- zscore查看元素的分数
- zrank查看元素的排名
stream消息队列
-
xadd添加消息,星号代表自动生成ID,回显的是生成的ID
-
xlen查看消息数量
-
xrange查看消息内容±代表开始和结束
-
xdel加ID删除此消息
-
xtrim删除所有消息maxlen 0代表所以消息
-
xadd手动添加ID
-
xread读取消息count读取消息数量block阻塞时间streams后加消息名
-
显示的第一个为读取的消息名,后面是读取的消息内容
-
0表示从头开始,5表示从5开始,把0改成$表示直接收,阻塞时间内从现在开始的最新消息
-
xgroup create 队列 组 组ID
-
创建消费者组
-
xinfo groups 队列
-
查看队列的组信息
-
xgroup createconsumer 队列 组 消费者
-
向组中添加消费者
-
xreadgroup group 组 消费者 count 读取数量 block 阻塞时间 streams 队列 >
-
消费者读取队列消息
hyperloglog统计
牺牲精确度统计大数据基数,如统计某个网站一个词的搜索量,基数是不重复的元素,重复的元素只算一个基数
- pfadd 添加一个hyperloglog
- pfcount 统计基数
- pfmerge 合并两个hyperloglog的基数
hash哈西
hash元素是键和对应值
- hset添加
- hget得到
- hgetall查看所有
- hdel删除
- hexists判断是否存在
- hkeys得到键
- hlen查看键的数量
事务
redis支持事务mulit开启一个事务,exec执行事务中的命令,redis的事务中的某一条命令执行失败其他命令仍然执行
incr自增命令,k5字符类型自增失败,不影响事务中的k5自增
发布订阅模式
redis采用publish发布,subscribe订阅,发布的消息订阅中可以查看
局限性是消息不能持久化,也不能查看历史消息
主从复制
简单讲就是主节点可有用多个副节点,主节点的数据自动同步到副节点,通过redis.conf配置文件配置副节点
哨兵模式
- 在主从复制基础上,有了哨兵模式,在主节点宕机后,哨兵可以从副节点选出新的主节点,监视通过不断发送信息来检测节点是否正常,通过发布订阅模式通知其他节点,自动故障转移主节点宕机选出新的主节点并将副节点指向新的主节点
添加配置文件sentinel.conf,然后通过命令redis-sentinel开启哨兵模式
持久化
有RDB,AOF两种方式实现持久化
- RDB短时间内将某个时间的数据快照写入磁盘中,在配置文件中设置save参数来配置
- AOF是将命令存储在一个追加文件中,当redis重启时执行追加文件的命令,来构建redis的数据结构,打开AOF是在配置文件中将appendonly 值改成yes