2019独角兽企业重金招聘Python工程师标准>>>

Redis 有序集合和集合一样也是string类型元素的集合,且不允许重复的成员。不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。有序集合的成员是唯一的,但分数(score)却可以重复。集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。 集合中最大的成员数为 232 - 1 (4294967295, 每个集合可存储40多亿个成员)。

下面我们直接来看命令

zadd/zrange

Redis Zadd 命令用于将一个或多个成员元素及其分数值加入到有序集当中。如果某个成员已经是有序集的成员,那么更新这个成员的分数值,并通过重新插入这个成员元素,来保证该成员在正确的位置上。分数值可以是整数值或双精度浮点数。如果有序集合 key 不存在,则创建一个空的有序集并执行 ZADD 操作。当 key 存在但不是有序集类型时,返回一个错误。

注意: 在 Redis 2.4 版本以前, ZADD 每次只能添加一个元素。语法如下:

ZADD KEY_NAME SCORE1 VALUE1.. SCOREN VALUEN

Redis Zrange 返回有序集中,指定区间内的成员。其中成员的位置按分数值递增(从小到大)来排序。具有相同分数值的成员按字典序(lexicographical order )来排列。如果你需要成员按值递减(从大到小)来排列,请使用 ZREVRANGE 命令。下标参数 start 和 stop 都以 0 为底,也就是说,以 0 表示有序集第一个成员,以 1 表示有序集第二个成员,以此类推。你也可以使用负数下标,以 -1 表示最后一个成员, -2 表示倒数第二个成员,以此类推。语法如下:

ZRANGE key start stop [WITHSCORES]

zrangebyscore

Redis Zrangebyscore 返回有序集合中指定分数区间的成员列表。有序集成员按分数值递增(从小到大)次序排列。具有相同分数值的成员按字典序来排列(该属性是有序集提供的,不需要额外的计算)。默认情况下,区间的取值使用闭区间 (小于等于或大于等于),你也可以通过给参数前增加 ( 符号来使用可选的开区间 (小于或大于)。语法如下:

ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count]

zrem

Redis Zrem 命令用于移除有序集中的一个或多个成员,不存在的成员将被忽略。当 key 存在但不是有序集类型时,返回一个错误。

注意: 在 Redis 2.4 版本以前, ZREM 每次只能删除一个元素。语法如下:

ZREM key member [member ...]

转载于:https://my.oschina.net/u/2286631/blog/1052850

redis有序集合(Zset)相关推荐

  1. redis有序集合zset详解

    zset 概述 Redis有序集合zset与普通集合set非常相似,是一个没有重复元素的字符串集合. 不同之处是有序集合的每个成员都关联了一个评分(score),这个评分(score)被用来按照从最低 ...

  2. php redis 搜索,PHP+Redis有序集合(zset)实现博客园阅读排行榜功能

    许多网站都有排行榜的功能,比如球员人气榜单.阅读排行榜,对于一些小网站,通过查数据库就能实现排行榜的功能,但是对于稍微有点用户量而且还是实时排名的网站,使用一些关系型数据库如(MySQL.Oracle ...

  3. Redis 有序集合(zset)取交集(zinterstore)操作耗时测试

    取交集的场景很多,比如公众号文章显示有多少个好友已读,又或者群聊成员列表显示有多少个好友已经入群.最近遇到一个类似场景,一开始的觉得线上数据量较大,redis 取交集操作时间复杂度在O(N),实时计算 ...

  4. Redis—列表(List)、集合(Set)、哈希(Hash)、有序集合 Zset

    Redis-列表List.集合Set.哈希Hash.有序集合 Zset 列表List 单键多值 常用命令 数据结构 Redis 集合(Set) 常用命令 数据结构 Redis 哈希(Hash) 常用命 ...

  5. Redis 为什么这么快? Redis 的有序集合 zset 的底层实现原理是什么? —— 跳跃表 skiplist

    Redis有序集合 zset 的底层实现--跳跃表skiplist Redis简介 Redis是一个开源的内存中的数据结构存储系统,它可以用作:数据库.缓存和消息中间件. 它支持多种类型的数据结构,如 ...

  6. PythonRedis 无序集合set、有序集合zset操作

    1.Redis控制台操作无序集合set 无序集合 元素为string类型 元素具有唯一性,不重复 redis操作: 设置 添加元素 SADD key member [member ...] 获取 返回 ...

  7. redis延迟队列 实现_php使用redis的有序集合zset实现延迟队列

    延迟队列就是个带延迟功能的消息队列,相对于普通队列,它可以在指定时间消费掉消息. 延迟队列的应用场景: 1.新用户注册,10分钟后发送邮件或站内信. 2.用户下单后,30分钟未支付,订单自动作废. 我 ...

  8. Redis-07Redis数据结构--有序集合ZSet

    文章目录 概述 有序集合的数据结构 Redis 有序集合的部分命令 spring-data-redis 对有序集合的封装 使用 Spring 操作有序集合 注意 代码 概述 有序集合和集合类似,只是说 ...

  9. Redis有序集合详解

    有序集合和集合类似,只是说它是有序的,和无序集合的主要区别在于每一个元素除了值之外,它还会多一个分数.分数是一个浮点数,在 Java 中是使用双精度表示的,根据分数,Redis 就可以支持对分数从小到 ...

最新文章

  1. IE新0day漏洞(979352)(又称极光零日漏洞)***将扩散
  2. 计算机网络-基本概念(9)【传输层】TCP拥塞控制 【网络层】拥塞避免
  3. css_04 | CSS——CSS 值和单位
  4. 【跃迁之路】【425天】程序员高效学习方法论探索系列(实验阶段182-2018.04.06)...
  5. 云小课|VMware备份上云学习专列来了,快加入吧~
  6. 获取skipcase
  7. typedef和define的作用域
  8. vim 寄存器 操作_说实话,Intellij IDEA 自带的 Vim 插件真心不错。。。
  9. 访问计算机计算机网络密码忘记了怎么办,无线网密码忘记了怎么办?
  10. activemq 简介 配置
  11. 一道疯狂bypass的题目
  12. IE10以上input自带的叉号和眼睛
  13. 谈我们的团队文化建设
  14. Linux文档编辑命令
  15. 虚拟机(VM)与JVM
  16. MFC程序逆向 – 消息篇(上)+(下)
  17. SpringBoot-Mybatis-Plus配置
  18. 测试百公里加速软件,测试:实测百公里加速成绩为9.6秒
  19. 如何在Mac上的Pages文稿中升高和降低字符和文本?
  20. 整理web前端架构师应会必会的技术栈

热门文章

  1. javascript仿韩国Google效果
  2. python定义一个空数组_python如何创建空数组?
  3. MODE —— 计算10个分数的平均值(知识点: 数组 变长数组)
  4. Google Capture The Flag 2018 (Quals) - Beginner's Quest - Reverse - Firmware
  5. 【清北前紧急补课3】水题集锦
  6. jmeter的基本功能使用详解
  7. 最全mysql的复制和读写分离
  8. 9.11排序与查找(三)——给定一个排序后的数组,包括n个整数,但这个数组已被旋转过多次,找出数组中的某个元素...
  9. Android项目中的assets和raw文件夹
  10. C#中JSON序列化和反序列化