Redis 学习笔记(七)之 有序集合
来源:互联网 发布:无线点菜机软件 编辑:程序博客网 时间:2024/06/05 02:35
转自:http://blog.csdn.net/men_wen/article/details/61920981
1.介绍
- 在集合类型的基础上,有序集合类型为集合中的每个元素都关联了一个分数,使得在完成插入、删除的集合类型的操作时,还能够获得分数最高(或最低)的前N个元素等与分数有关的操作。
- 集合元素具有唯一性,但是分数可以相同。
2. 比较
有序集合类型和列表类型的相似点:
- 二者都是有序的。
- 二者都可以获得某一范围的元素。
有序集合类型和列表类型的区别:
- 列表类型内部由双向链表实现,访问靠近两端数据极快,但访问中间元素较慢,有序集合内部有散列表和跳跃表(skip list)实现,读取中间的数据也很快。
- 有序集合可以通过分数调整某个元素的位置,而列表类型无法简单实现。
- 有序集合比列表更耗费内存。
3. 有序集合(sorted set)命令
- ZADD
- 将所有指定成员添加到键为key有序集合(sorted set)里面。如果指定添加的成员已经是有序集合里面的成员,则会更新改成员的分数(scrore)并更新到正确的排序位置。
- 如果key不存在,将会创建一个新的有序集合(sorted set)并将分数/成员(score/member)对添加到有序集合,就像原来存在一个空的有序集合一样。
- 分数值是一个双精度的浮点型数字字符串。+inf和-inf都是有效值。
- 1
- 2
- 3
- 4
- 5
- 6
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- ZSCORE
- 返回有序集key中,成员member的score值。
- 如果member元素不是有序集key的成员,或key不存在,返回nil。
- 1
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- ZRANGE
- 按照元素的分数从小到大的顺序返回指定索引start到stop之间所有元素(包含两端)
- 1
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- ZREVRANGE
- 返回有序集key中,指定区间内的成员。其中成员的位置按score值递减(从大到小)来排列。具有相同score值的成员按字典序的反序排列。 除了成员按score值递减的次序排列这一点外,ZREVRANGE命令的其他方面和ZRANGE命令一样。
- 1
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- ZRANGEBYSCORE
- 返回key的有序集合中的分数在min和max之间的所有元素(包括分数等于max或者min的元素)。元素被认为是从低分到高分排序的。
- 具有相同分数的元素按字典序排列(这个根据redis对有序集合实现的情况而定,并不需要进一步计算)。
- 可选的LIMIT参数指定返回结果的数量及区间(类似SQL中SELECT LIMIT offset, count)。注意,如果offset太大,定位offset就可能遍历整个有序集合,这会增加O(N)的复杂度。
- 可选参数WITHSCORES会返回元素和其分数,而不只是元素。
- 1
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- ZREVRANGEBYSCORE
- ZREVRANGEBYSCORE 返回有序集合中指定分数区间内的成员,分数由高到低排序。
- 1
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- ZINCRBY
- 为有序集key的成员member的score值加上增量increment。如果key中不存在member,就在key中添加一个member,score是increment.
- 如果key不存在,就创建一个只含有指定member成员的有序集合。也有可能给一个负数来减少score的值。
- 1
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- ZCARD
- 返回key的有序集元素个数。
- 1
- 1
- 2
- ZCOUNT
- 返回有序集key中,score值在min和max之间(默认包括score值等于min或max)的成员。
- 1
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- ZREM
- 删除一个或多个元素,返回删除元素的个数。
- 1
- 1
- 2
- 3
- 4
- 5
- 6
- ZREMRANGEBYRANK
- 移除有序集key中,指定排名(rank)区间内的所有成员。下标参数start和stop都以0为底,0处是分数最小的那个元素。这些索引也可是负数,表示位移从最高分处开始数。
- 1
- 1
- 2
- 3
- 4
- 5
- ZREMRANGEBYSCORE
- 移除有序集key中,所有score值介于min和max之间(包括等于min或max)的成员。
- 1
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- ZRANK
- 返回有序集key中成员member的排名。其中有序集成员按score值递增(从小到大)顺序排列。排名以0为底,也就是说,score值最小的成员排名为0。
- 1
- 1
- 2
- ZREVRANK
- 返回有序集key中成员member的排名,其中有序集成员按score值从大到小排列。排名以0为底,也就是说,score值最大的成员排名为0。
- 1
- 1
- 2
- ZINTERSTORE
- 计算给定的numkeys个有序集合的交集,并且把结果放到destination中。 在给定要计算的key和其它参数之前,必须先给定key个数(numberkeys)。
- 默认情况下,结果中一个元素的分数是有序集合中该元素分数之和,前提是该元素在这些有序集合中都存在。因为交集要求其成员必须是给定的每个有序集合中的成员,结果集中的每个元素的分数和输入的有序集合个数相等。
- 如果destination存在,就把它覆盖。
- 使用WEIGHTS选项,你可以为每个给定的有序集指定一个乘法因子,意思就是,每个给定有序集的所有成员的score值在传递给聚合函数之前都要先乘以该因子。如果WEIGHTS没有给定,默认就是1。
- 使用AGGREGATE选项,你可以指定交集的结果集的聚合方式。默认使用的参数SUM,可以将所有集合中某个成员的score值之和作为结果集中该成员的score值。如果使用参数MIN或者MAX,结果集就是所有集合中元素最小或最大的元素。
- 1
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- ZUNIONSTORE
- 计算给定的numkeys个有序集合的并集,并且把结果放到destination中。在给定要计算的key和其它参数之前,必须先给定key个数(numberkeys)。 默认情况下,结果集中某个成员的score值是所有给定集下该成员score值之和。
- 1
阅读全文
0 0
- Redis 学习笔记(七)之 有序集合
- Redis 学习笔记(七)之 有序集合
- Redis学习笔记之七:有序集合类型
- Redis学习笔记(六)类型之有序集合
- Redis学习笔记(七)——Redis常用命令入门——有序集合类型
- redis学习笔记五之基础命令—有序集合
- redis源码分析(七)、redis命令学习总结—Redis 有序集合(sorted set)
- Redis系列学习笔记6 有序集合
- redis学习笔记五(有序集合)
- Redis笔记part6(有序集合)
- Redis命令学习-SortedSet(有序集合)
- Redis 数据库之有序集合(zset)
- Redis之 有序集合(SortedSets)
- redis学习(七)——五大数据类型总结:字符串、散列、列表、集合和有序集合
- 【Redis笔记(六)】 Redis数据结构 - 有序集合zset
- Redis笔记7:数据类型之有序集合(sorted set)
- Redis基础之有序集合
- redis 学习手册之有序集合数据类型sorted-sets操作
- 面向对象程序设计上机练习六(类和对象)
- Java虚拟机类加载机制
- 设计模式之禅6
- Android自定义控件之基本原理 转载自(总李写代码)
- 机器学习课后作业笔记(一)
- Redis 学习笔记(七)之 有序集合
- URL中“#” “?” &“”号的作用
- 嵌入式10月就业榜万众一“薪” 全国平均薪资9645.5元
- 关于程序员之间丧心病狂的鄙视链——编程语言篇
- 自定义View,转载大神的页面
- 常用的正则表达式
- 各领域公开数据集下载
- JSP知识点总结
- jQuery知识点(1)-版本选择与下载配置