Redis Stream相关命令的使用

整片文章参考: http://www.redis.cn/commands/xrange.html

二、队列相关指令

1、xadd 消息入队

在这里插入图片描述

xadd users * name jack age 18

在这里插入图片描述

2、xrange

此命令返回流中满足给定ID范围的条目.范围由最小和最大ID指定。所有ID在指定的两个ID之间或与其中一个ID相等(闭合区间)的条目将会被返回。
在这里插入图片描述

xrange users 1689170489971-0 1689170503225-0 

在这里插入图片描述

1)特殊ID
  • 和 + 。特殊ID-和+分别表示流中可能的最小ID和最大ID,因此,以下命令将会返回流中的每一个条目:
xrange users - +

在这里插入图片描述
- ID实际上与指定0-0完全一样,而+则相当于18446744073709551615-18446744073709551615,但是它们更适合输入

2)不完全ID

流的ID由两部分组成,一个Unix毫秒时间戳和一个为同一毫秒插入的序列号(例如 1689170489971-0)。使用XRANGE仅指定ID的第一部分是可能的,即毫秒时间部分,如下面的例子所示:

xrange users 1689170489971 1689170503225

在这里插入图片描述
在这种情况中,XRANGE将会使用-0自动补全开始ID,以及使用-18446744073709551615自动补全结束ID,以便返回所有在两个毫秒值之间生成的条目。这同样意味着,重复两个相同的毫秒时间,我们将会得到在这一毫秒内产生的所有条目,因为序列号范围将从0到最大值

以这种方式使用XRANGE用作范围查询命令以在指定时间内获取条目。这非常方便,以便访问流中过去事件的历史记录

3)返回最大条目数

使用COUNT选项可以减少报告的条目数。这是一个非常重要的特性,虽然它看起来很边缘,因为它允许,例如,模型操作,比如给我大于或等于以下ID的条目:
在这里插入图片描述

4)迭代流

为了迭代流,我们可以如下进行。让我们假设每次迭代我们需要两个元素。我们开始获取前两个元素,XRANGE writers - + COUNT 2。
在这里插入图片描述

然后,不是从-再次开始迭代,我们使用前一次XRANGE调用中返回的最后的条目ID作为范围的开始,将ID的序列部分加1。
如上述最后一个条目的ID是1526985685298-0,所以我们只需要在序列中加1以获得1526985685298-1,并继续我们的迭代:
在这里插入图片描述

5)获取单个项目

因为XRANGE实际上就是从流中获取单个条目的方式。所有你需要做的,就是在XRANGE的参数中指定ID两次:
在这里插入图片描述

3、xrevrange

4、xdel

从指定流中移除指定的条目,并返回成功删除的条目的数量,在传递的ID不存在的情况下, 返回的数量可能与传递的ID数量不同

xdel users 1689170354092-0

在这里插入图片描述

5、xlen

返回流中的条目数。如果指定的key不存在,则此命令返回0,就好像该流为空。[注意],与其他的Redis类型不同,零长度流是可能的,所以你应该调用TYPE 或者 EXISTS 来检查一个key是否存在。

一旦内部没有任何的条目(例如调用XDEL后),流不会被自动删除,因为可能还存在与其相关联的消费者组。

xlen users

在这里插入图片描述

6、xtrim

下面的命令会将流裁剪到最新的1000个项目:

XTRIM mystream MAXLEN 1000

可以使用以下特殊形式提供命令,以提高其效率:

XTRIM mystream MAXLEN ~ 1000

在选项MAXLEN和实际计数中间的参数~的意思是,用户不是真的需要精确的1000个项目。它可以多几十个条目,但决不能少于1000个。通过使用这个参数,仅当我们移除整个节点的时候才执行修整。这使得命令更高效,而且这也是我们通常想要的。

7、xread

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值