Redis——关于redis5.0的stream消息队列的命令的使用

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

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]

命令解释:

  1. 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长度,会丢弃超过长度的旧数据,~表示非绝对长度限制;

     
  2. XLEN key
    返回stream的长度;

     
  3. 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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值