stream是redis5.0新增的一个数据类型,完善了消息队列功能,可以通过rdb或aof持久化到硬盘上;

简单模式相关命令:
XADD key ID field string [field string ...]
XLEN key
XREAD [COUNT count] [BLOCK milliseconds] STREAMS key [key ...] ID [ID ...]
XRANGE key start end [COUNT count]
XREVRANGE key end start [COUNT count]
XDEL key ID [ID ...]
XTRIM key MAXLEN [~] count
组模式相关命令:
XGROUP [CREATE key groupname id-or-$] [SETID key id-or-$] [DESTROY key groupname] [DELCONSUMER key groupname consumername]
XREADGROUP GROUP group consumer [COUNT count] [BLOCK milliseconds] STREAMS key [key ...] ID [ID ...]
XPENDING key group [start end count] [consumer]
XACK key group ID [ID ...]
XCLAIM key group consumer min-idle-time ID [ID ...] [IDLE ms] [TIME ms-unix-time] [RETRYCOUNT count] [force] [justid]
信息查询命令:
XINFO [CONSUMERS key groupname] [GROUPS key] [STREAM key] [HELP]
命令解释:
- XADD key ID field string [field string ...]
添加stream消息,key不存在则新建stream;
ID可以为*,表示redis自动生成id,id由一个long数字+横线+一个long数字组成,自动生成的id第一个long是当前时间毫秒值,第二个long是在当前毫秒值上从0递增的数字;
ID也可以自定义,最小id是0-1(不能是0-0,但存在1-0,、2-0……),后续id的第一个数字不能小于已经存在的id的第一个数字,当第一个long相同时第二个long数字要大于已经存在的最大的第二个long的值;
自动生成id可以处理服务器时间改动问题,如果发现当前时间的long值比stream最大的long小,则保持最大的long不变,递增第二个long;
可以在key和ID之间加入 MAXLEN [~] n 参数在添加新数据的时候同时限制stream长度,会丢弃超过长度的旧数据,~表示非绝对长度限制;
- XLEN key
返回stream的长度;
- XREAD [COUNT count] [BLOCK milliseconds] STREAMS key [key ...] ID [ID ...]
读取stream消息;
[COUNT count]设置读取数量;
[BLOCK milliseconds]设置阻塞等待时间(ms),获取不到返回nil;
[key ...]可以读取多个stream;
[ID ...]表示读取该id之后的数据,可以为0表示从stream第一个数据读取,可以为$表示阻塞等待读取最新消息(需跟BLOCK同时使用);
读取多stream的时候COUNT会对每个s

介绍Redis 5.0新增的数据类型Stream,包含消息队列功能并可通过RDB或AOF持久化。详解Stream基本命令如XADD、XREAD等及消息组相关命令如XGROUP CREATE、XREADGROUP等。
最低0.47元/天 解锁文章
14万+

被折叠的 条评论
为什么被折叠?



