Redis之Sorted Set 有序集合

Redis Sorted Set 有序集合

Redis 有序集合和集合一样也是string类型元素的集合,且不允许重复的成员。

不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。

有序集合的成员是唯一的,但分数(score)却可以重复。

集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。 集合中最大的成员数为 232 - 1(4294967295, 每个集合可存储40多亿个成员)。

应用场景

1.带有权重的元素,LOL游戏大区最强王者

2 排行榜

案例

斗地主大赛排名

  • 初始比赛
    127.0.0.1:6379> ZADD doudizhu_rank 0 "player1" (integer) 1 127.0.0.1:6379> ZADD doudizhu_rank 0 "player2" (integer) 1 127.0.0.1:6379> ZADD doudizhu_rank 0 "player3" (integer) 1 
  • 比赛开始,经过n轮比赛,每次统计,类似计算如下所示
    127.0.0.1:6379> ZINCRBY doudizhu_rank 3 player3 "3" 127.0.0.1:6379> ZINCRBY doudizhu_rank -1 player2 "-1" 127.0.0.1:6379> ZINCRBY doudizhu_rank -2 player1 "-2" 
  • 比赛结束,进行排名
    127.0.0.1:6379> ZRANGE doudizhu_rank 0 -1 1) "player1" 2) "player2" 3) "player3" 127.0.0.1:6379> ZRANGE doudizhu_rank 0 -1 withscores 1) "player1" 2) "-2" 3) "player2" 4) "-1" 5) "player3" 6) "3" 
    逆序排序才对
    127.0.0.1:6379> zrevrange doudizhu_rank 0 -1 withscores
    1) "player3"
    2) "3"
    3) "player2"
    4) "-1"
    5) "player1"
    6) "-2"
    127.0.0.1:6379>

转载于:https://www.cnblogs.com/wzjbg/p/6597451.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值