深入理解Redis.新特性.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
深化理解Redis5.0新特性 streams 供应了默认的id模式用来独一标识streams中的每一条数据,由两部分组成:?- millisecondsTime是redis服务所在机器的时间,sequenceNumber用于同一毫秒创建的数据。需要留意的一点是streams的id总是单调增长的,即便redis服务所在的服务器时间特别。假如当前的毫秒数小于以前的毫秒数,就会使用历史记录中最大的毫秒数,然后序列号递增。而这样做的缘由是由于streams的机制允许依据时间区间或者某一个时间节点或者某一id查找数据。 向streams插入数据 streams 的基础写命令为XADD,其语法为XADD key ID field value [field value ...] 127.0.0.1:6379 XADD mystream * name dwj age 18 1574925508730-0 127.0.0.1:6379 上面的例子使用XADD向名为mystream的streams中添加了一条数据,ID使用*表示使用streams使用默认的ID,在本例中redis前往的1574925508730-0就是redis为我们插入的数据生成的ID。 另外streams 查看streams长度的命令为XLEN 127.0.0.1:6379 XLEN mystream (integer) 3 127.0.0.1:6379 从streams中读取数据 从streams中读取数据会比写数据简单很多,用日志文件进行对比,我们可以查看历史日志,可以依据范围查询日志,我们可以通过unix的命令tail -f来监听日志,可以多个用户查看到同一份日志,也可以多个用户只能查看到本人有权限查看的那一部分日志。 按范围查询: XRANGE 和 XREVRANGE 首先来引见一下 依据范围查询,这两种操作都比较简约,以XRANGE为例,它的语法格式为XRANGE key start end [COUNT count], 我们只需要供应两个id,start和end,前往的将是一个包含start和end的闭区间。两个特殊的ID-和+分别表示可能的最小ID和最大ID。 127.0.0.1:6379 XRANGE mystream - + 1) 1) 1574835253335-0 2) 1) name 2) bob 3) age 4) 23 2) 1) 1574925508730-0 2) 1) name 2) dwj 3) age 4) 18 127.0.0.1:6379 我们前边提到过数据id中包含了创建数据的时间信息,这意味着我们可以依据时间范围查询数据,为了依据时间范围查询,我们省略掉ID的序列号部分,假如省略,对于start ID会使用0作为默认的序列号,对于end ID会使用最大序列号作为默认值,这样的话我们使用两个unix时间戳去查询数据就可以得到那个时间区间内全部的数据。 1) 1) 1574835253335-0 2) 1) name 2) bob 3) age 4) 23 127.0.0.1:6379 可能还会有同学留意到语法的最终边还有count参数,这个参数允许我们一次只前往固定数量的数据,然后依据前往数据的last_id,作为下一次查询的start,这样就允许我们在一个量格外大的streams里批量前往数据。XREVRANGE命令与XRANGE相同,但是以相反的挨次前往元素,就不反复引见了。 通过XREAD读取数据 XREAD允许我们从某一结点开头从streams中读取数据,它的语法为XREAD [COUNT count] [BLOCK milliseconds] STREAMS key [key ...] id [id ...],我们在这里次要将的是通过XREAD来订阅到达streams新的数据。这种操作可能跟REDIS中原有的pub/sub机制或者堵塞队列的概念有些类似,都是等待一个key然后猎取到新的数据,但是跟这两种有着本质的差别: streams跟pub/sub和堵塞队列允很多个客户端一起等待数据,默认情况下,streams会把消息推送给全部等待streams数据的客户端,这个力量跟pub/sub有点类似,但是streams也允许把消息通过竞争机制推送给其中的一个客户端(这种模式需要用到消费者组的概念,会在后边讲到)。 pub/sub的消息是fire and forget并且从不存储,你只可以订阅到在你订阅时间之后产生的消息,并且消息只会推送给客户端一次,不能查看历史记录。以及使用堵塞队列时,当客户端收到消息

文档评论(0)

duanbingbing + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档