redis详解-(7)有序集合

上一篇介绍了redis的无序集合set,本篇介绍redis的有序集合sortedset。

和set集合类似,sortedset是有序的去重的,元素是字符串类型。
每一个元素都关联着一个浮点数分值(score),并按照分值从小到大的顺序排列集合中的元素,分值可以相同。
一个集合最多包含2的32次方减1个元素。

一个保存了水果价格的有序集合

分值 2.8 3.5 4.3 6.8 7.0 9.2 10.0
元素 西瓜 香蕉 芒果 葡萄 苹果 柚子

一个保存了书籍浏览量的集合(可以拓展很多的业务)

分值 250 350 950 1500 3000
元素 设计模式 编程思想 虚拟机内核 linux内核 算法导论

1.增加一个或多个元素

zadd key score member [score member …]

如果元素已存在则使用新的元素

这里写图片描述

2.移除一个或多个元素

zadd key member [member …]

元素如果不存在,自动忽略
这里写图片描述

3.查看元素的分值

zscore key member

这里写图片描述

4.增加分值

zincrby key increment member

这里写图片描述

5.返回元素的排名(索引)

zrank key member

redis详解-(7)有序集合_第1张图片

6.返回元素的逆排名

zrevrank key member

redis详解-(7)有序集合_第2张图片

7.返回指定索引区间的元素

zrange key start stop [0 -1查看所有的元素]
zrevrange key start stop

这里写图片描述

redis详解-(7)有序集合_第3张图片

8.返回指定分值区间的元素

zrangebyscore key min max

redis详解-(7)有序集合_第4张图片

9.移除指定排名范围内的元素

ZREMRANGEBYRANK key start stop

10.移除指定分值范围内的元素

ZREMRANGEBYSCORE key min max

11.返回集合中元素的个数

zcard key

这里写图片描述

12.返回指定范围内元素的个数

zcount key min max

redis详解-(7)有序集合_第5张图片

13.并集

ZUNIONSTORE destination numkeys key [key …] [WEIGHTS weight] [AGGREGATE SUM|MIN|MAX]

numkeys:指定key的数量,后面跟几个key就是几,必须
WEIGHTS:选项与前面指定的key对应,对应key中的每一个score都要乘以这个权重
AGGREGATE:指定并集的聚合方式
SUM:将所有集合中某一个元素的score值之和作为结果集中该成员的score值
MIN:将所有集合中某一个元素的score值最小值作为结果集中该成员的score值
MAX:将所有集合中某一个元素的score值最大值作为结果集中该成员的score值

这里写图片描述

这里实现了去重,zhangsan,lisi,zhaoliu

这里写图片描述

默认对元素的分数进行了相加

redis详解-(7)有序集合_第6张图片

使用min,取最小元素放入到新的集合中

redis详解-(7)有序集合_第7张图片

添加权重key1的所有分值乘以1,key2的所有分值乘以0.5,返回最小值

redis详解-(7)有序集合_第8张图片

14.交集

ZINTERSTORE destination numkeys key [key …] [WEIGHTS weight] [AGGREGATE SUM|MIN|MAX]

numkeys:指定key的数量,后面跟几个key就是几,必须
WEIGHTS:选项与前面指定的key对应,对应key中的每一个score都要乘以这个权重
AGGREGATE:指定并集的聚合方式
SUM:将所有集合中某一个元素的score值之和作为结果集中该成员的score值
MIN:将所有集合中某一个元素的score值最小值作为结果集中该成员的score值
MAX:将所有集合中某一个元素的score值最大值作为结果集中该成员的score值

找两个集合相同的元素存储到一个指定的集合中

redis详解-(7)有序集合_第9张图片

你可能感兴趣的:(redis)