《redis in action》ZSet相关命令

写点笔记

共 1311字,需浏览 3分钟

 ·

2021-04-02 13:34

zset类型数据提供了数据基于分数的排序功能,其数据结构就和hash数据结构类似。这种映射关系的数据结构允许我们去操作分数,或者获取、截取这些具有顺序的元素个体。在第一章中我们展示了一个简单的例子,使用zset来对发布的文章根据时间和投票的数据进行排序。本片文章我们将要讨论有关zset的一些其他操作命令,我们可以学习到如何添加和更新zset中的数据,当然我们也将了解如何使用zset数据结构进行intersection(差集)和并集的命令。当我们完成这块的学习之后,我们就会更好的理解第一章我我们有关zset的示例,以及后边的第五六七章的想滚内容。
zadd:添加一个给定分数的元素到zset中zrem:移除多个指定的元素,并返回移除成功的个数zcard:返回zset中元素的个数zincrby:增加元素的分速zcount:返回指定分数区间的元素的个数zrank:返回给定元素的位置信息zscore:返回指定元素的分数zrange:返回元素和分数,从开始到结束位置

上边的截图示例中说的很明确,程序员学英语就应该看英文技术书啊!因为代码就是我们共同语言。学起来so easy 啦!
在此我们已经学习了zadd、zrem、zincrby、zscore以及zrange命令,这些命令都是常规命令,没有什么奇特的。但是这里的zcount命令不同于其他。zcount命令用来返回指定最小和最大分数之间的元素的个数。下边咋再介绍一些我们经常使用不到的命令。

zrevrank:返回反序的元素的地址zrevrange:反序返回指定窗口的元素zrangebyscore:返回介于最大和最小分数之间的元素zrevrangebyscore:倒序返回介于最大和最小分数之间的元素zremrangebyrank:删除指定窗口之间的元素zremrangebyscore:删除介于指定分数区间的元素zinterstore:求指定zset之间的交集并将其分数按指定策略保留,具体有和,最大,最小zunionstore:求指定zset之间的并集,保留策略可以指定是和、最小、最大等

书中的截图很清晰,这里就不演示了。
zset的并集和交集第一次去理解还是有点困难的,这里我们展示一些图标来展示一下当我们执行这两个命令的时候redis都做了哪些事情。下图就是我们采用的求和策略。
和求交集不同,当我们使用并集的时候,之前保留在zset中的元素并不会消失,所有的元素都会被保留到结果集中,这块我们采用保留最小值得并集策略。
当然我们也可以采用求和的并集策略,这样我们就可以对两个zset中的分数进行合并,从而得到一个新的zset,这在工作中很常用。

在第七章,我们将使用zintrestore和zunionstore作为不同的检索分类,我们将要讨论不同渠道的zset分数的权重参数问题,这块使用set和zset就可以进行解决。

浏览 29
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报