• 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>
  • 相关阅读:
    为什么选择 Yeoman 及 Yeoman 的安装
    NPOI高效匯出Excel
    CentOS7 MongoDB安裝
    打印函数调用堆栈
    libevent源码分析:eventop
    libevent源码分析:time-test例子
    libevent源码分析:event_assign、event_new
    libevent源码分析:bufferevent
    lievent源码分析:evbuffer
    epoll实现压测工具
  • 原文地址:https://www.cnblogs.com/wzjbg/p/6597451.html
Copyright © 2020-2023  润新知