redis学习十二:数据类型命令及落地运用 (Stream)

发布时间 2023-06-20 17:38:16作者: 浮笙芸芸

redis流(Stream):就是redis版本的MQ,消息中间件

作用:实现消息队列,它支持消息的持久化,支持自动生成全局唯一id,支持ack确认消息的模式,支持消费组模式等,让消息队列更加的稳定和可靠。

1.xadd key */id field value 添加消息到队列末尾,id必须比上个id大,使用*号默认生成id

xrange key 获取消息列表,忽略删除的消息:start表示开始值,-代表最小值;end表示结束值,+代表最大值;count表示最多获取多少个值

 2.xrevrange 逆序显示

xdel key id删除对应id的消息

xlen key 显示这个key一共有多少个id

 3.xtrim 截取

maxlen允许的最大长度,对流进行修剪限制长度

minid允许的最小id,比其小的会被删掉

 4.xread读取消息(阻塞/非阻塞),只会返回大于指定ID的信息

(1)非阻塞:$代表特殊id表示以当前stream已经存储的最大id作为最后一个id,当前stream中不存在大于当前最大id的消息,所以这个时候返回nil

0-0代表从最小的id读取stream消息,不指定count的话胡返回所有消息,也可以使用0/00/000

(2)阻塞:block 是否以阻塞方式读取消息,默认不阻塞,比如查询$那个,需要另一个号去添加一个新的才有