Redis 有序集合(zset)

Redis zremrangebyrank 命令用于删除排序集中存储在 key 处的所有元素,其 rank 介于 start 和 stop 之间。

start 和 stop 都是从零开始的索引,

  • 0 是第一个元素,
  • 1 是下一个元素,依此类推。

它们也可以是负数,表示从得分最高的元素开始的偏移量。

  • -1 是排序集的最后一个元素
  • -2 倒数第二个元素,依此类推。

语法:

zremrangebyrank key start stop 

可用版本

>=2.0.0.

返回值

整数,移除的元素个数。

返回值类型

整数

示例1:Redis zremrangebyrank:删除索引范围内的成员

localhost:0>zadd mycityset 1 北京 2 上海 3 广州 4 深圳 5  天津
"5"
localhost:0>zrange mycityset 0 -1 WITHSCORES
 1)  "北京"
 2)  "1"
 3)  "上海"
 4)  "2"
 5)  "广州"
 6)  "3"
 7)  "深圳"
 8)  "4"
 9)  "天津"
 10)  "5"
localhost:0>zremrangebyrank mycityset 1 2
"2"
localhost:0>zrange mycityset 0 -1 WITHSCORES
 1)  "北京"
 2)  "1"
 3)  "深圳"
 4)  "4"
 5)  "天津"
 6)  "5" 

示例2:Redis zremrangebyrank:使用负索引删除成员

 localhost:0>zadd mycityset 1 北京 2 上海 3 广州 4 深圳 5 天津
"5"
localhost:0>zrange mycityset 0 -1 WITHSCORES
 1)  "北京"
 2)  "1"
 3)  "上海"
 4)  "2"
 5)  "广州"
 6)  "3"
 7)  "深圳"
 8)  "4"
 9)  "天津"
 10)  "5"
localhost:0>zremrangebyrank mycityset -3 -2
"2"
localhost:0>zrange mycityset 0 -1 WITHSCORES
 1)  "北京"
 2)  "1"
 3)  "上海"
 4)  "2"
 5)  "天津"
 6)  "5"