redis 学习(7) -- 有序集合

zset 结构

  • 有序集合:有序、不能包含重复元素
  • 每个节点包含:score和value两个属性,根据score进行排序

如图:

zset 重要 API

含义 命令
zadd key score1 member1 [score2 member2...] 向有序集合添加一个或多个成员,或者更新已存在成员的分数
zrem key member1 [member2...] 从有序集合中删除一个或多个成员
zscore key member 获取有序集合中成员的分数
zincrby key increment member 对有序集合中指定成员的分数加上增量increment
zcard key 返回有序集合中元素的总个数
zrange key start end [withscores] 通过索引返回有序集合中指定区间的成员信息
zrangebyscore key min max [withscores][limit] 通过score返回有序集合中指定分数区间的成员信息
zscore key min max 返回有序集合中指定分数范围内的元素个数
zremrangebyscore key min max 删除有序集合中指定分数区间的所有成员
zremrangebyrank key start end 删除有序集合中给定索引区间的所有成员

演示

  1. 127.0.0.1:6381> zadd player:rank 1000 ronaldo 900 messi 800 c-ronaldo 600 kaka
  2. (integer) 4
  3. 127.0.0.1:6381> zrange player:rank 0 -1
  4. 1) "kaka"
  5. 2) "c-ronaldo"
  6. 3) "messi"
  7. 4) "ronaldo"
  8. 127.0.0.1:6381> zcount player:rank 700 901
  9. (integer) 2
  10. 127.0.0.1:6381> zrangebyscore player:rank 700 901
  11. 1) "c-ronaldo"
  12. 2) "messi"
  13. 127.0.0.1:6381> zremrangebyrank player:rank 0 1
  14. (integer) 2
  15. 127.0.0.1:6381> zrange player:rank 0 -1
  16. 1) "messi"
  17. 2) "ronaldo"
  18. 127.0.0.1:6381> zrange player:rank 0 -1 withscores
  19. 1) "messi"
  20. 2) "900"
  21. 3) "ronaldo"
  22. 4) "1000"
  23. 127.0.0.1:6381>

实战

排行榜功能

使用有序集合,运用zrange,zrangebyscore、zrangebyrank 等命令可以实现排行榜功能。

redis 学习(7) -- 有序集合的更多相关文章

  1. 第二百九十九节,python操作redis缓存-SortSet有序集合类型,可以理解为有序列表

    python操作redis缓存-SortSet有序集合类型,可以理解为有序列表 有序集合,在集合的基础上,为每元素排序:元素的排序需要根据另外一个值来进行比较,所以,对于有序集合,每一个元素有两个值, ...

  2. Redis学习---Redis操作之有序集合

    有序集合,在集合的基础上,为每元素排序:元素的排序需要根据另外一个值来进行比较,所以,对于有序集合,每一个元素有两个值,即:值和分数,分数专门用来做排序. zadd(name, *args, **kw ...

  3. redis 系列14 有序集合对象

    一. 有序集合概述 Redis 有序集合对象和集合对象一样也是string类型元素的集合,且不允许重复的成员.不同的是每个元素都会关联一个double类型的分数.redis正是通过分数来为集合中的成员 ...

  4. redis:php-redis中有序集合 zset的使用

    ZSET(stored set) 和 set 一样是字符串的集合,不同的是每个元素都会关联一个 double 类型的 score .实现使用的是 skip list 和 hash table , sk ...

  5. redis列表和有序集合

    redis中的list数据类型是可以插入重复数据的,有去重的需求的话可以用redis有序集合数据类型 Redis Zadd 命令用于将一个或多个成员元素及其分数值加入到有序集当中. 如果某个成员已经是 ...

  6. redis 入门之有序集合

    zadd 将一个或多个 member 元素及其 score 值加入到有序集 key 当中.如果某个 member 已经是有序集的成员,那么更新这个 member 的 score 值,并通过重新插入这个 ...

  7. .net学习笔记----有序集合SortedList、SortedList<TKey,TValue>、SortedDictionary<TKey,TValue>

    无论是常用的List<T>.Hashtable还是ListDictionary<TKey,TValue>,在保存值的时候都是无序的,而今天要介绍的集合类SortedList和S ...

  8. redis:order set有序集合类型的操作(有序集合)

    1. order set有序集合类型的操作(有序集合) 有序集合是在无序集合的基础上加了一个排序的依据,这个排序依据叫score,因此声明一个集合为有序集合的时候要加上score(作为排序的依据) 1 ...

  9. (PHP)redis Zset(有序集合 sorted set)操作

    /** * * Zset操作 * sorted set操作 * 有序集合 * sorted set 它在set的基础上增加了一个顺序属性,这一属性在修改添加元素的时候可以指定,每次指定后,zset会自 ...

  10. redis: Zset有序集合类型(七)

    存值:zadd myset 1 one 取值:zrange myset 0 -1 127.0.0.1:6379> zadd myset 1 one #存值 分值为1 (integer) 1 12 ...

随机推荐

  1. Android学习_广播接收器

    一.广播 1. 标准广播和有序广播 标准广播:异步,发出消息,所有接收器同时接收.但无法被截断 有序广播:同步,同一时刻只有一个广播接收器接收.可截断消息. 2. 广播注册 代码中注册(动态注册).A ...

  2. svn 同步备份的所有问题,亲测可用

    svnsync 异地同步收获 (2010-07-06 10:06:19) 转载▼ 标签: 杂谈 分类: svn svnsync 异地同步收获: 来自:我用Subversion - http://www ...

  3. Backen-Development record 1

    单例模式 在应用这个模式时,单例对象的类必须保证只有一个实例存在. 服务进程中的其他对象再通过这个单例对象获取这些配置信息.这种方式简化了在复杂环境下的配置管理. __new__实现 用装饰器实现单例 ...

  4. [学习笔记] L1-PCA

    L1-PCA Intro PCA的本质就是从高维空间向低维空间投影,投影的本质又是左乘(或右乘)一个向量(表征原来特征空间到投影后特征空间的权重),经过线性加权,转换到低维空间表征,如果将向量换成矩阵 ...

  5. RF框架自定义测试库开发

    静态库 方法(methods)直接映射为关键字名称.关键字接受和方法相同的参数, 通过抛异常来 报告错误, 通过往标准输出里写入来写 log, 同时可以通过return 来返回结果. 创建步骤: ▲ ...

  6. openerp学习笔记 搜索视图(自己创建的、自己的、本部门的、本部门及下属部门的、今日的、日期从,日期至、多条件模糊搜索、or、and)

    自己创建的: domain="[('create_uid','=',uid)]" 自己的: domain="[('employee_id','=','#kl_user_e ...

  7. python - 注释说明

    归类三种注释风格: 大段的自定义块状注释 """ #========================================= # FileName: upgra ...

  8. Zabbix - LINUX下CPU,硬盘,流量,内存监控

    转载自:https://blog.csdn.net/jxzhfei/article/details/47191431 1.LINUX下zabbix客户端安装 [root@mongodb114 ~]# ...

  9. dyld: Library not loaded: /usr/local/opt/readline/lib/libreadline.7.dylib

    dyld: Library not loaded: /usr/local/opt/readline/lib/libreadline.7.dylib Table of Contents 1. 启动时报错 ...

  10. 安德鲁1.2Ku全下125C波(CCTV4K除外)

    闲来无事.没事挑战下难度. 前面高楼挡住了,一直没有试过125, 没想到1.2的锅能全下 机器:恐龙机dinobot4K+ 天线:安德鲁1.2ku 接送结果:除4K外所有高清 图片如下