目录

1. 什么是有序集合

2. 命令使用

2.1 ZADD添加元素

2.2 ZREM删除元素

2.3 ZSCORE返回元素分值

2.4 ZINCRBY增加或减少分值

2.5 ZCARD有序集合的基数

2.6 ZRANK元素排名

2.7 ZREVRANK元素逆序排名

2.8 ZRANGE获取指定索引范围内的升序元素

2.9 ZREVRANGE获取指定索引范围内的降序元素

2.10 ZRANGEBYSCORE获取指定分值范围内的升序元素

2.11 ZREVRANGEBYSCORE获取指定分值范围内的降序元素

2.12 ZCOUNT计算给定分值范围内的元素数量

2.13 ZREMRANGEBYRANK移除指定排名范围内的升序排列元素

2.14 ZREMRANGEBYSCORE移除指定分值范围内的升序排列元素

2.15 ZUNIONSTORE计算并集

2.16 ZINTERSTORE计算交集


1. 什么是有序集合

有序集合可以包含任意数量的、各不相同的元素,有序集合的每个元素都关联着一个浮点数格式的分值(score),并且有序集合会按照分值,以从小到大的顺序来排列有序集合中的各个元素。举个例子:

redis的有序集合删除第一个元素 redis zset 删除元素_升序

2. 命令使用

2.1 ZADD添加元素

ZADD key score element:添加元素,返回添加成功元素的数量。

redis的有序集合删除第一个元素 redis zset 删除元素_并集_02

查看结果:

redis的有序集合删除第一个元素 redis zset 删除元素_redis的有序集合删除第一个元素_03

2.2 ZREM删除元素

ZREM key element:从有序集合中删除指定的元素和关联的分值,返回被成功删除的元素数量。

redis的有序集合删除第一个元素 redis zset 删除元素_升序_04

查看结果:

redis的有序集合删除第一个元素 redis zset 删除元素_有序集合_05

2.3 ZSCORE返回元素分值

ZSCORE key element:返回有序集合中指定元素的分值。

redis的有序集合删除第一个元素 redis zset 删除元素_并集_06

2.4 ZINCRBY增加或减少分值

ZINCRBY key number element:为指定元素的值增加或减少,number为负数实现减操作。返回执行操作后的分值。

redis的有序集合删除第一个元素 redis zset 删除元素_redis的有序集合删除第一个元素_07

2.5 ZCARD有序集合的基数

ZCARD key:返回有序集合的基数,包含元素的个数。

redis的有序集合删除第一个元素 redis zset 删除元素_有序集合_08

2.6 ZRANK元素排名

ZRANK key element:返回指定元素在有序集合中的排名,排名从0开始

redis的有序集合删除第一个元素 redis zset 删除元素_升序_09

2.7 ZREVRANK元素逆序排名

ZREVRANK key element:返回元素的逆序排名,排名从0开始。

redis的有序集合删除第一个元素 redis zset 删除元素_有序集合_10

2.8 ZRANGE获取指定索引范围内的升序元素

ZRANGE key start stop [WITHSCORES]:返回有序集合在索引 start 至索引 stop 范围之内的所有元素。当给定 WITHSCORES 选项时,命令会将元素和分值一并返回。start、stop可正可负。

redis的有序集合删除第一个元素 redis zset 删除元素_有序集合_11

2.9 ZREVRANGE获取指定索引范围内的降序元素

ZREVRANGE key start stop [WITHSCORES]:返回有序集合在索引 start 至索引 stop 范围之内的所有元素。当给定 WITHSCORES 选项时,命令会将元素和分值一并返回。start、stop可正可负。

redis的有序集合删除第一个元素 redis zset 删除元素_并集_12

2.10 ZRANGEBYSCORE获取指定分值范围内的升序元素

ZRANGEBYSCORE key min max [WITHSCORES][LIMIT offset count]:返回有序集合在按照分值升序排列元素的情况下,分值在 min 和 max 范围之内的所有元素。给定 WITHSCORES 选项时,元素和分值会一并返回。给定 LIMIT 选项时,可以通过 offset 参数指定返回的结果集要跳过多少个元素,而 count 参数则用于指定返回的元素数量。

redis的有序集合删除第一个元素 redis zset 删除元素_有序集合_13

redis的有序集合删除第一个元素 redis zset 删除元素_升序_14

2.11 ZREVRANGEBYSCORE获取指定分值范围内的降序元素

ZREVRANGEBYSCORE key max min[WITHSCORES] [LIMIT offset count]:返回有序集合在按照分值降序排列元素的情况下,分值在 min 和 max 范围之内的所有元素。给定 WITHSCORES 选项时,元素和分值会一并返回。给定 LIMIT 选项,可以通过 offset 参数指定返回的结果集要跳过多少个元素,而 count 参数则用于指定返回的元素数量。

redis的有序集合删除第一个元素 redis zset 删除元素_有序集合_15

redis的有序集合删除第一个元素 redis zset 删除元素_redis的有序集合删除第一个元素_16

2.12 ZCOUNT计算给定分值范围内的元素数量

ZCOUNT key min max:返回分值在min到max之间的元素个数。

redis的有序集合删除第一个元素 redis zset 删除元素_升序_17

2.13 ZREMRANGEBYRANK移除指定排名范围内的升序排列元素

ZREMRANGEBYRANK key start stop:移除有序集合中,元素按升序 进行排列的情况下,指定排名范 围内的所有元素。排名范围可以使用正数和负数。

redis的有序集合删除第一个元素 redis zset 删除元素_升序_18

2.14 ZREMRANGEBYSCORE移除指定分值范围内的升序排列元素

ZREMRANGEBYSCORE key min max:移除有序集合中,分值范围介于 min 和 max 之内的所有元素。

redis的有序集合删除第一个元素 redis zset 删除元素_redis的有序集合删除第一个元素_19

2.15 ZUNIONSTORE计算并集

ZUNIONSTORE newkey numkeys key [key..…]:计算给定集合的并集,并将结果存在newkey中,numkeys 参数指定要进行计算的有序集合个数。

redis的有序集合删除第一个元素 redis zset 删除元素_redis的有序集合删除第一个元素_20

如果两个有序列表里面的value值一致的话,在取并集的时候会将score值相加。

redis的有序集合删除第一个元素 redis zset 删除元素_升序_21

2.16 ZINTERSTORE计算交集

ZINTERSTORE newkey numkeys key [key..…]:计算给定集合的交集,并将结果存在newkey中,numkeys 参数指定要进行计算的有序集合个数。

redis的有序集合删除第一个元素 redis zset 删除元素_有序集合_22

当value值相同时,在取交集的时候score值会相加。

redis的有序集合删除第一个元素 redis zset 删除元素_有序集合_23