react 前端框架如何驱动企业数字化转型与创新发展
764
2022-10-17
Redis教程12-有序集合(sorted set)常用命令使用参考2
1.ZRANGEBYSCORE
ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count]
返回有序集 key 中,所有 score 值介于 min 和 max 之间(包括等于 min 或 max )的成员。有序集成员按 score
具有相同 score 值的成员按字典序(lexicographical order)来排列(该属性是有序集提供的,不需要额外的计算)。
可选的 LIMIT 参数指定返回结果的数量及区间(就像SQL中的 SELECT LIMIT offset, count ),注意当 offset 很大时,定位 offset
可选的 WITHSCORES 参数决定结果集是单单返回有序集的成员,还是将有序集成员及其 score
该选项自 Redis 2.0 版本起可用。
区间及无限
min 和 max 可以是 -inf 和 +inf ,这样一来,你就可以在不知道有序集的最低和最高 score 值的情况下,使用 ZRANGEBYSCORE
默认情况下,区间的取值使用闭区间 (小于等于或大于等于),你也可以通过给参数前增加 ( 符号来使用可选的开区间
举个例子:
127.0.0.1:6379> zrangebyscore names (1 51 < score <= 51) "tom"2) "2"3) "lisi"4) "3"5) "jerry"6) "4"7) "wangwu"8) "5"127.0.0.1:6379> zrangebyscore names (1 (51 < score < 51) "tom"2) "2"3) "lisi"4) "3"5) "jerry"6) "4"
可用版本:>= 1.0.5
时间复杂度:O(log(N)+M), N 为有序集的基数, M
返回值:指定区间内,带有 score
127.0.0.1:6379> zrangebyscore names -inf +inf // 不知道score范围, 显示全部元素1) "zhangsan"2) "tom"3) "lisi"4) "jerry"5) "wangwu"127.0.0.1:6379> zrangebyscore names -inf +inf withscores // 显示score 1) "zhangsan" 2) "1" 3) "tom" 4) "2" 5) "lisi" 6) "3" 7) "jerry" 8) "4" 9) "wangwu"10) "5"127.0.0.1:6379> zrangebyscore names 1 (5 withscores // 显示1<=score<5的成员1) "zhangsan"2) "1"3) "tom"4) "2"5) "lisi"6) "3"7) "jerry"8) "4"127.0.0.1:6379> zrangebyscore names (1 (5 withscores // 显示1
2.ZRANK
ZRANK key member
返回有序集 key 中成员 member 的排名。其中有序集成员按 score
排名以 0 为底,也就是说, score 值最小的成员排名为 0
使用 ZREVRANK 命令可以获得成员按 score
可用版本:>= 2.0.0
时间复杂度:O(log(N))
返回值:
如果 member 是有序集 key 的成员,返回 member
如果 member 不是有序集 key 的成员 或者 key不存在,返回 nil
127.0.0.1:6379> zrange names 0 -1 // 展示所有成员1) "zhangsan"2) "tom"3) "lisi"4) "jerry"5) "wangwu"127.0.0.1:6379> zrank names zhangsan // zhangsan排在第一个(integer) 0127.0.0.1:6379> zrank names wangwu // 排在第五个(integer) 4127.0.0.1:6379> zrank names jack // member不存在, 返回nil(nil)127.0.0.1:6379> zrank ages jack // key不存在, 返回nil(nil)127.0.0.1:6379>
3.ZREM
ZREM key member [member ...]
移除有序集 key
当 key
在 Redis 2.4
可用版本:>= 1.2.0
时间复杂度:O(M*log(N)), N 为有序集的基数, M
返回值:被成功移除的成员的数量,不包括被忽略的成员。
127.0.0.1:6379> zrange names 0 -11) "zhangsan"2) "tom"3) "lisi"4) "jerry"5) "wangwu"127.0.0.1:6379> zrem ages 11 // key不存在, 返回0(integer) 0127.0.0.1:6379> zrem names jack // 成员不存在, 返回0(integer) 0127.0.0.1:6379> zrem names zhangsan // 删除单个成员(integer) 1127.0.0.1:6379> zrange names 0 -11) "tom"2) "lisi"3) "jerry"4) "wangwu"127.0.0.1:6379> zrem names tom lisi jerry // 删除多个成员(integer) 3127.0.0.1:6379> zrange names 0 -11) "wangwu"127.0.0.1:6379>
4.ZREMRANGEBYRANK
ZREMRANGEBYRANK key start stop
移除有序集 key
区间分别以下标参数 start 和 stop 指出,包含 start 和 stop
下标参数 start 和 stop 都以 0 为底,也就是说,以 0 表示有序集第一个成员,以 1
你也可以使用负数下标,以 -1 表示最后一个成员, -2
可用版本:>= 2.0.0
时间复杂度:O(log(N)+M), N 为有序集的基数,而 M
返回值:被移除成员的数量。
127.0.0.1:6379> zadd names 1 tom 2 jerry 3 zhangsan 4 lisi 5 wangwu(integer) 5127.0.0.1:6379> zrange names 0 -1 withscores 1) "tom" 2) "1" 3) "jerry" 4) "2" 5) "zhangsan" 6) "3" 7) "lisi" 8) "4" 9) "wangwu"10) "5"127.0.0.1:6379> zremrangebyrank names 0 3 // 移除下标0-3的四个成员(integer) 4127.0.0.1:6379> zrange names 0 -1 // 只剩下一个成员了1) "wangwu"127.0.0.1:6379>
5.ZREMRANGEBYSCORE
ZREMRANGEBYSCORE key min max
移除有序集 key 中,所有 score 值介于 min 和 max 之间(包括等于 min 或 max
自版本2.1.6开始, score 值等于 min 或 max 的成员也可以不包括在内,详情请参见上面 1.ZRANGEBYSCORE
可用版本:>= 1.2.0
时间复杂度:O(log(N)+M), N 为有序集的基数,而 M
返回值:被移除成员的数量。
127.0.0.1:6379> zadd names 1 tom 2 jerry 3 zhangsan 4 lisi 5 wangwu(integer) 5127.0.0.1:6379> zrange names 0 -1 withscores // 显示所有集合成员 1) "tom" 2) "1" 3) "jerry" 4) "2" 5) "zhangsan" 6) "3" 7) "lisi" 8) "4" 9) "wangwu"10) "5"127.0.0.1:6379> zremrangebyscore names 1 2 // 删除1<=score<=2的成员(integer) 2127.0.0.1:6379> zrange names 0 -1 withscores1) "zhangsan"2) "3"3) "lisi"4) "4"5) "wangwu"6) "5"127.0.0.1:6379> zremrangebyscore names (3 (5 // 删除3
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~