让我们先设置你的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键最小值最大值
删除存储在 key 的有序集合中的所有元素,并带有分数
介于最小值和最大值(含)之间。
ZREMRANGEBYRANK键启动停止
删除排序集中存储在 key 中的所有元素
开始和停止。 start 和 stop 都是基于 0 的索引,其中 0 是
得分最低的元素。这些指数可以是负数
数字,它们表示从元素开始的偏移量
最高分。例如:-1 是得分最高的元素,
-2 得分第二高的元素,依此类推。