我的关注 |
¥0.1 redis sorted set中如何移除从大到小排序的第N到第M的数据?
0

redis sorted set中如何移除从大到小排序的第N到第M的数据?

苦行帝王
修改
评论(0)
1个回答
1
采纳

ZREMRANGEBYRANK key start stop 是从redis sorted set中移除从[start,stop]排名间的用户。其中start 和stop都可以是负数。
官网上说:

  1. These indexes can be negative numbers, where they indicate offsets starting at the element with the highest score. For example: -1 is the element with the highest score, -2 the element with the second highest score and so forth.

就是说sorted set 中-1表示最大元素,-2表示第二大元素。所以如果你像移除从大到小排序,第99名到199名的用户的话,使用命令:
ZREMRANGEBYRANK key -100 -200
如果移除从大到小排序,第99名以后的所有数据的话,使用:
ZREMRANGEBYRANK key 0 -100


EXAMPLE:

  1. 127.0.0.1:6379> zadd test 1 1
  2. (integer) 1
  3. 127.0.0.1:6379> zadd test 2 2
  4. (integer) 1
  5. 127.0.0.1:6379> zadd test 3 3
  6. (integer) 1
  7. 127.0.0.1:6379> zrange test 0 -1
  8. 1) "1"
  9. 2) "2"
  10. 3) "3"
  11. 4) "4"
  12. 5) "5"
  13. 6) "6"

我们现在移除从大到小排序第4名以后(包括)的所有数据:

  1. 127.0.0.1:6379> zremrangebyrank test 0 -4
  2. (integer) 3
  3. 127.0.0.1:6379> zrange test 0 -1
  4. 1) "4"
  5. 2) "5"
  6. 3) "6"
采纳答案
只谈风月
修改
评论 (0)
撰写回答