Redis应用场景(六)Zset集合

浮生半日闲 发布于 2022-11-09 5 次阅读


zset是一个有序列表,和set相比,多了一个score属性来进行排序。

1、排行榜

由于zset存在排序分数score,因此非常适合用于排行榜。使用ZADD key score1 member1添加元素。

127.0.0.1:6379> ZADD user:score 90 zhangsan
(integer) 1
127.0.0.1:6379> ZADD user:score 89 lisi
(integer) 1
127.0.0.1:6379> ZADD user:score 95 wangwu
(integer) 1

同时也可以使用ZINCRBY key increment member动态增加分数。

127.0.0.1:6379> ZINCRBY user:score 3 wangwu
"98"

使用ZREVRANGE key start stop [WITHSCORES] 返回排行榜内容(如果需要从低到高排序,则使用ZRANGE key start stop [WITHSCORES] 命令):

127.0.0.1:6379> ZREVRANGE user:score 0 2 WITHSCORES
1) "wangwu"
2) "98"
3) "zhangsan"
4) "90"
5) "lisi"
6) "89"

也可以使用ZREVRANGEBYSCORE key max min [WITHSCORES]命令来查询指定分数区间内的排序(如果需要从低到高排序,则使用ZRANGEBYSCORE key min max [WITHSCORES]命令):

127.0.0.1:6379> ZREVRANGEBYSCORE user:score 95 85 WITHSCORES
1) "zhangsan"
2) "90"
3) "lisi"
4) "89"