ZREMRANGEBYRANK ZREMRANGEBYSCORE之间的差异

问题描述:

ZREMRANGEBYRANKZREMRANGEBYSCORE有什么区别?ZREMRANGEBYRANK ZREMRANGEBYSCORE之间的差异

解释它我就到下面的查询:

127.0.0.1:6379> ZRANGEBYSCORE my 1 10 WITHSCORES 
1) "b" 
2) "1" 
3) "a" 
4) "4" 
+0

您询问了两条命令,并给出了第三条命令的示例。你应该编辑你的问题,并解释你的问题要更清楚。 –

+0

@ abhishek-kushwaha,下面的答案帮你了吗? – LuFFy

让我们设置你的ZSet第一:

ZADD myzset 1 "one" 
ZADD myzset 2 "two" 
ZADD myzset 3 "three" 
ZADD myzset 4 "four" 
ZADD myzset 5 "five" 
ZADD myzset 6 "six" 
ZADD myzset 7 "seven" 
ZADD myzset 8 "eight" 
ZADD myzset 9 "nine" 
ZADD myzset 10 "ten" 

让我们来看看您使用以下命令来选择:

127.0.0.1:6379> ZRANGE myzset 0 10 WITHSCORES 
1) "one" 
2) "1" 
3) "two" 
4) "2" 
5) "three" 
6) "3" 
7) "four" 
8) "4" 
9) "five" 
10) "5" 
11) "six" 
12) "6" 
13) "seven" 
14) "7" 
15) "eight" 
16) "8" 
17) "nine" 
18) "9" 
19) "ten" 
20) "10" 

所以它会选择所有元素。

输出的ZREMRANGEBYSCORE

127.0.0.1:6379> ZREMRANGEBYSCORE myzset 5 8 
(integer) 4 
127.0.0.1:6379> 
127.0.0.1:6379> ZRANGE myzset 0 10 WITHSCORES 
1) "one" 
2) "1" 
3) "two" 
4) "2" 
5) "three" 
6) "3" 
7) "four" 
8) "4" 
9) "nine" 
10) "9" 
11) "ten" 
12) "10" 

所以元素已经最低分数5至最大分数8将被去除。这里移除的元素;得分:5,6,7,8

输出ZREMRANGEBYRANK的:

127.0.0.1:6379> ZREMRANGEBYRANK myzset 5 8 
(integer) 4 
127.0.0.1:6379> 
127.0.0.1:6379> ZRANGE myzset 0 10 WITHSCORES 
1) "one" 
2) "1" 
3) "two" 
4) "2" 
5) "three" 
6) "3" 
7) "four" 
8) "4" 
9) "five" 
10) "5" 
11) "ten" 
12) "10" 

所以元素已经最小索引5至最大指数8将被删除。这里删除的元素:6,7,8,9,其指数5,6,7,8

Redis Commands Documentation

ZREMRANGEBYSCORE键最小值最大值

删除所存储在关键分的成绩 有序集合的所有元素最小值和最大值之间(含)。

ZREMRANGEBYRANK键启停

删除在 启动和停止之间,排名存储在关键的有序集合的所有元素。开始和结束都是基于0的索引,0是 具有最低分数的元素。这些索引可以是负数,其中它们指示从具有最高分数的元素开始的偏移量。例如:-1是分数最高的元素, -2分数第二高的元素等等。