redis详解-(7)有序集合

来源:互联网 发布:mac usb3.0 编辑:程序博客网 时间:2024/06/10 17:36

上一篇介绍了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

这里写图片描述

6.返回元素的逆排名

zrevrank key member

这里写图片描述

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

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

这里写图片描述

这里写图片描述

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

zrangebyscore key min max

这里写图片描述

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

ZREMRANGEBYRANK key start stop

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

ZREMRANGEBYSCORE key min max

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

zcard key

这里写图片描述

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

zcount key min max

这里写图片描述

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

这里写图片描述

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

这里写图片描述

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

这里写图片描述

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

这里写图片描述

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值

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

这里写图片描述

原创粉丝点击