SortedSet操作

SortedSet操作原文链接 http doc redisfans com sorted set index html SortedSet 的数据结构类似于 Set 不同的是 Sorted 中的每个成员都分配了一个值 Score 用于对其中的成员进行排序 升序 zaddkeyscore scoremember 将一个或多个 member 及其 socre 加入到 set 中 socre 须是 f

zadd key score member[[score member] ..]
  将一个或多个member及其socre加入到set中,socre须是float类型;例:zadd zsk 1 m1 2 m2 3 m3 0 m4在集合中是[m4 0][m3 3][m2 2][m1 1]这样的顺序。

zcard key
  返回有序集合中元素的个数,若key不存在返回0;例:zcard zsk。

zcount key min max
  返回score值在min和max之间的元素个数(score和min之间是>=和max是<=),若min>max返回0,若min或max不为float类型返回error;例:zcount zsk 1 4。

zincrby key increment member
  为集合成员member的score增加增量increment并返回新的score值,increment可以为负数但必须是float类型否则会返回error,若key不存在则会先新增member成员后再执行操作;例:zincrby zsk -1.1 m1。

zrange key start stop[withscores]
  按索引返回key的成员区间,start和stop是有序集合的索引下标(从0开始),若stop

  1) m5

  2) 0.5
  3) m1
  4) 1
  5) m4
  6) 1
zrangebyscore key min max [withscores][limit offset count]
  返回有序集合中score介于min和max之间的元素(若不想包含=请用如 zrangebyscore zsk (1 (4表示),litmit的功能类似于分页,例:zrangebyscore zsk 0 1 withscores limit 0 2返回:
  1) m5
  2) 0.5
  3) m1
  4) 1
当然如果你不知道min和max的值可以使用-inf和+inf来替代。













zrank key member
  返回有序集合中member的排名,排名以0为底;例:zrank zsk m4。

zrem key member[member…]
  移除有序集合中的一个或多个元素,若member不存在则忽略;例:zrem zsk m5 m1。

zremrangebyrank key start stop
  删除指定区间中的元素,start和stop的计数从0开始,start的位置须小于stop,start和stop也可为负数表示从后记位如-1表示倒数第一个元素;例:zremrangebyrank zsk 0 -3。

zremrangebyscore key min max
  删除score值在min和max之间的元素(若不想包含=请用如 zremrangebyscore zsk (1 (4表示);例:zremrangebyscore zsk 1 2。

zrevrange key start stop[withscores]
  和zrange类似,不过zrevrange的元素时倒序排列的:zrevrange zsk 0 5 withscores。

zrevrangebyscore key max min [withscores] [limit offset count]
  和zrangebyscore类似,只不过返回结果是按倒序排列(这里需要注意一下max和min的书序),例:zrevrangebyscore zsk 6 2 withscores limit 1 2。

zrevrank key member
  和zrank类似,不过数据返回的顺序为倒序,顺序以0位底,也就是说最大的排名为0,例:zrevrank zsk m6。

zscore key member
  返回成员member的score值,若key不存在返回nil;例:zscore zsk m3。

zunionstore destination numkeys key [key …] [weights [weight …]] [aggregate sum|min|max]
  吐槽一句这个命令真心长,不过并不难理解,这个是返回一个或多个集合的并集并将结果存储到destination中去,若destination已存在此元素则score的值会被覆盖:
  numkeys用于指定key的数量,若key的数目和numkeys不一致会返回错误,score为元素的score之和,也就是说若sk1和sk2中都有m4,一个score为1另外一个为2,那么合并的新集合中score为3;
  weights为每个有序集合的乘法因子,也就是说sk1中和sk2中都有m4,score分别为1和2,乘法因子设置为1和2,那么最终的score为1*1+2*2,weights默认为1一旦显示指定weights那么weight的数目必须与key的数目相同否则会返回error;
  aggregate可以指定结果集的聚合方式,默认使用sum将某个成员之和作为score值,使用min使用最小的,使用max使用最大的,如sk1和sk2中m4的score分别为1和2,那么使用sum最终的socre就为3,使用max最终的socre就为2,使用min最总的score就为1,aggregate的会先计算weight再做比较。
  例:zunionstore zsk2 2 zsk zsk1 weights 1 4 aggregate max。




zinterstore destination numkeys key [key …] [WEIGHTS weight [weight …]] [AGGREGATE SUM|MIN|MAX]
  取交集并存入destination,不想再细说了看zunionstore吧,例:zinterstore zsk2 2 zsk zsk1 weights 1 4 aggregate max。

zscan key cursor[match pattern][count count]
  增量迭代有序集合,参见scan,例:zscan sk 0 match *5 count 1。

转载于:https://www.cnblogs.com/ming-jia/p/9699049.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/179339.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月26日 下午3:49
下一篇 2026年3月26日 下午3:49


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号