Redis中的有序集合类型

马谦马谦马谦 2017年11月26日19:45:19 发表评论
文章最后编辑于:2019-6-16 13:44:51

一、概述

有序集合也是一个集合,和集合的不同之处在于有序集合是有序的,它通过给集合中每一个元素都关联一个分数,使得我们可以通过分数来获取一定范围内的元素。

二、命令

2.1 增加和删除元素

  • ZADD key score member [score member ...]:添加元素,当key不存在时创建。分数支持整数和双精度浮点数,可以使用+inf-inf分别表示正无穷大和负无穷大,成功返回添加的元素个数。
  • ZREM key member [member ...]:移除元素,返回成功移除的个数。

2.2 获取元素

  • ZCARD key:获取集合中的元素个数。

  • ZSCORE key member:获取某个元素的分数。
  • ZRANK key member:获取正序元素的排名,排名从0开始。
  • ZREVRANK key member:获取逆序排名。

  • ZRANGE key start stop [WITHSCORES]:根据分数大小从小到大返回索引从[start, stop]之间的元素。默认只返回元素名,如果需要同时返回分数需要带上WITHSCORES参数。如果两个元素分数相同,会根据元素名的字典序排序。
  • ZREVRANGE key start stop [WITHSCORES]:和ZRANGE命令用法一致,只是排序是根据分数从大到小排序,也就是逆序排序。

  • ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count]:获取分数范围在minmax之间的元素,LIMIT offset count和SQL中的limit一样,从偏移量offset开始获取count个元素。如果不想包括边界值可以在值前面加一个(,例如(min (max表示查询分数范围在(min, max)范围内的元素。
  • ZCOUNT key min max:获取指定分数范围内的元素个数。

2.3 增加分数

  • ZINCRBY key increment member:给member成员增加分数increment,返回值是更改后的分数。

2.4 根据条件删除元素

  • ZREMRANGEBYRANK key start end:删除排名范围在[start, end]之间的元素,返回成功删除的元素个数。

  • ZREMRANGEBYSCORE key min max:删除分数范围在[min, max]之间的元素。

本文共执行41次查询,耗时0.270秒!
马谦马谦马谦

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: