• 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>
  • 相关阅读:
    (100%成功超详细图文教程)虚拟机VM ware中centos7无法上网及Xshell配置正确但是连接不上本地虚拟机问题汇总
    react-art 初步
    React-父组件访问子组件内部
    React学习随笔
    关于Git使用的常见问题和命令
    ES6随笔--Module
    ES6随笔--Set和Map
    ES6随笔--Promise
    ES6随笔--Symbol
    ES6随笔--各数据类型的扩展(3)--函数
  • 原文地址:https://www.cnblogs.com/wzjbg/p/6597451.html
Copyright © 2020-2023  润新知