zoukankan      html  css  js  c++  java
  • 07_Redis_Sorted Set命令

    一:Redis 有序集合(sorted set):有序set集合,专门用来做排行榜

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

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

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

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

    二:Redis 有序集合命令:

      2.1:赋值:zadd key score member score2 member2 … :将所有成员以及该成员的分数存放到sorted-set中。如果该元素已经存在则会用新的分数替换原有的分数。返回值是新加入到集合中的元素个数,不包含之前已经存在的元素。

        

        2.2:查看:zscore key member:返回指定成员的分数

        

         zcard key :返回集合中的元素个数

        

      2.3:范围查询:

        zrange key start end [withscores]:获取集合中脚标为start-end的成员,[withscores]参数表明返回的成员包含其分数。(分数由小到大排列)

        

          zrevrange key start end [withscores]:获取集合中脚标为start-end的成员,[withscores]参数表明返回的成员包含其分数。(分数由大到小排列:排行榜)

        

        2.4:删值:zrem key member[member…]:移除集合中指定的成员,可以指定多个成员。

        

    三:Redis 有序集合使用场景:

      1.可以用于一个大型在线游戏的积分排行榜。每当玩家的分数发生变化时,可以执行ZADD命令更新玩家的分数,此后再通过ZRANGE命令获取积分TOPTEN的用户信息。当然我们也可以利用ZRANK命令通过username来获取玩家的排行信息。最后我们将组合使用ZRANGE和ZRANK命令快速的获取和某个玩家积分相近的其他用户的信息。

      2、sortedet类型还可用于构建索引数据

     更多命令参考:http://www.runoob.com/redis/redis-sorted-sets.html

      

  • 相关阅读:
    Java调用外部类定义的方法(Static与无Static两种)
    Java调用未被Static修饰的本类方法
    Java调用Static修饰的本类方法
    java利用Aspose.words.jar将本地word文档转化成pdf(完美破解版 无水印 无中文乱码)
    web-程序逻辑问题
    web-忘记密码了
    jenkins部署遇到离线问题如何解决
    Ansible基于playbook批量修改主机名实战
    windows/linux环境python3出现pip is configured with locations that require TLS/SSL, however the..不可用的解决方法
    linux软链接的创建、修改和删除
  • 原文地址:https://www.cnblogs.com/yaboya/p/8966220.html
Copyright © 2011-2022 走看看