Redis5.0开始引入了Stream这个数据结构,Stream可以很好地用于消息队列,它支持消息持久化,同时可以记录消费者的位置,即使客户端断开重连,也不会丢失消息。
使用 XADD 向队列添加消息,如果指定的队列不存在,则创建一个队列,XADD 语法格式:
1 | XADD key ID field value [field value ...] |
1 | redis> XADD mystream * name Sara surname OConnor |
XADD 中的key为队列ID,默认为*自动生成,也可以手动指定
1 | XADD mystream 10000000 name Anna |
可以使用MAXLEN选项来限制Stream队列流中的最大元素数量。

读取Stream队列,想从数据流的开头读取多达100个条目:
1 | XREAD COUNT 100 STREAMS mystream 0 |