在 set 集合类型的基础上,有序集合类型为集合中的每个元素都关联一个分数 ,这使得我们不仅可以完成插入、删除和判断元素是否存在在集合中,还能够获得分数最高或最低的前N个元素、获取指定分数范围内的元素等与分数有关的操作
命令说明:
语法:ZADD key score member [score member ...]
示例
127.0.0.1:6379> zadd zseta 40 a 90 b 20 c 30 d
(integer) 4
127.0.0.1:6379> zadd zseta 50 d
(integer) 0
语法
ZRANGE key start stop [WITHSCORES]
ZREVRANGE key start stop [WITHSCORES]
示例
127.0.0.1:6379> zrange zseta 0 2
1) "c"
2) "a"
3) "d"
127.0.0.1:6379> zrevrange zseta 0 2
1) "b"
2) "d"
3) "a"
# 如果需要获得元素的分数的可以在命令尾部加上 WITHSCORES 参数
127.0.0.1:6379> zrevrange zseta 0 2 withscores
1) "b"
2) "90"
3) "d"
4) "50"
5) "a"
6) "40"
语法:ZSCORE key member
示例:
127.0.0.1:6379> zscore zseta b
"90"
移除有序集合key中的一个或多个成员,不存在的成员将被忽略。
当key存在但不是有序集类型时,返回一个错误。
语法:ZREM key member [member ...]
示例
127.0.0.1:6379> zrem zseta b
(integer) 1
语法:ZRANGEBYSCORE key min max [WITHSCORES]
示例
127.0.0.1:6379> ZRANGEBYSCORE scoreboard 90 97 WITHSCORES
1) "wangwu"
2) "94"
3) "lisi"
4) "97"
127.0.0.1:6379> ZRANGEBYSCORE scoreboard 70 100 limit 1 2
1) "wangwu"
2) "lisi"
返回值是更改后的分数
语法:ZINCRBY key increment member
示例
127.0.0.1:6379> ZINCRBY scoreboard 4 lisi
"101"
语法:ZCARD key
示例
127.0.0.1:6379> ZCARD scoreboard
(integer) 3
语法:ZCOUNT key min max
示例
127.0.0.1:6379> zcount zseta 40 50
(integer) 2
语法:ZREMRANGEBYRANK key start stop
示例
127.0.0.1:6379> zremrangebyrank zseta 0 1
(integer) 2
127.0.0.1:6379> zrange zseta 0 -1
1) "d"
语法:ZREMRANGEBYSCORE key min max
示例
127.0.0.1:6379> zrange zseta 0 -1
1) "d"
127.0.0.1:6379> zremrangebyscore zseta 40 60
(integer) 1
语法:
ZRANK key member
ZREVRANK key member
示例
127.0.0.1:6379> zrank zseta a
(integer) 2
127.0.0.1:6379> zrevrank zseta b
(integer) 0