有序集合(zset)类型为集合中的每一个元素都关联了一个分数,这使得有序集合不仅可以完成插入、删除和判断元素是否存在等集合类型所支持的操作,还能够完成获取分数最高(或最低)的前N个元素、获取指定分数范围内的元素等与分数有关的操作。有序集合中的每个元素都是不同的,但是它们的分数可以相同。
有序集合适用于需要按照特定顺序访问的数据,如排行榜、时间线等。
zadd命令
将元素添加至有序集合中。
命令格式
- zadd key score member [[score member] [score member] ...]
使用示例
1、zadd key score member [[score member] [score member] ...]:将一至多个元素member及分值score添加至有序集合中。

zrange/zrevrange命令
查看集合指定下标区间的元素,zrange命令的集合元素按分值递增排序,zrevrange命令的集合元素按分值递减排序。
命令格式
- zrange key start stop [withscores]
- zrevrange key start stop [withscores]
命令详解
- start stop:查看集合start至stop间的元素(包含start与stop)。元素下标从0开始,并可使用负数,−1表示倒数第一个,−2表示倒数第二个,依此类推。
- withscores:可选项,查看元素时是否带有分值,默认不带分值。
使用示例
1、zrange key start stop [withscores]:查看集合下标从start到stop间的元素(集合按分值递增排序)。

2、zrevrange key start stop [withscores]:查看集合下标从start到stop间的元素(集合按分值递减排序)。

zrangebyscore/zrevrangebyscore命令
查看集合指定分值区间的元素,zrangebyscore命令的集合元素按分值递增排序,zrevrangebyscore命令的集合元素按分值递减排序。
命令格式
- zrangebyscore key min max [withscores] [limit offset count]
- zrevrangebyscore key max min [withscores] [limit offset count]
命令详解
- min max:元素升序排列查看分值在min至max间的元素(包含min与max);max min:元素降序排列查看分值在max至min间的元素(包含max与min)。
分值默认使用闭区间(包含min与max),若要使用开区间(不包含min与max),可在分值后使用圆括号,例如:10)20)表示大于10小于20。 - withscores:可选项,查看元素时是否带有分值,默认不带分值。
- limit offset count:可选项,跳过offset个元素,返回count个元素。
使用示例
1、zrangebyscore key min max [withscores] [limit offset count]:查看集合分值从min到max间的元素(集合按分值递增排序)。
1.1、zrangebyscore key min max:查看集合分值从min到max间的元素(集合按分值递减排序)。

1.2、zrangebyscore key min max withscores:查看集合分值从min到max间的元素及分值(集合按分值递增排序)。

2、zrevrangebyscore key max min [withscores] [limit offset count]:查看集合分值从max到min间的元素(集合按分值递减排序)。
2.1、zrevrangebyscore key max min withscores:查看集合分值从max到min间的元素及分值(集合按分值递减排序)。

2.2、zrevrangebyscore key max min withscores limit offset count:查看集合分值从max到min间的count个元素及分值(集合按分值递减排序,且跳过前面offset个元素)。

zcard命令
查看有序集合中的元素数量。
命令格式
- zcard key
使用示例
1、zcard key:查看有序集合中的元素数量。

zrank/zrevrank命令
查看元素在有序集合中的下标。
命令格式
- zrank key member
- zrevrank key member
使用示例
1、zrank key member:查看元素member在有序集合中的下标(集合元素按分值递增排序)。

2、zrevrank key member:查看元素member在有序集合中的下标(集合元素按分值递减排序)。

zscore命令
查看有序集合中的元素分值。
命令格式
- zscore key member
使用示例
1、zscore key member:查看有序集合中的member元素的分值。

zincrby命令
为有序集合中的元素增加分值。
命令格式
- zincrby key increment member
使用示例
1、zincrby key increment member:为有序集合中的元素member增加分值increment。

zcount命令
查看分值在指定区间的元素数量。
命令格式
- zcount key min max
使用示例
1、zcount key min max:查看分值在min与max间的元素数量(包含min与max)。

zrem命令
删除有序集合中的指定元素。
命令格式
- zrem key member [member ...]
使用示例
1、zrem key member [member ...]:删除有序集合中的指定元素member。

zremrangebyscore命令
删除有序集合中指定分值区间的元素。
命令格式
- zremrangebyscore key min max
使用示例
1、zremrangebyscore key min max:删除有序集合中分值在min与max间的元素(包含min与max)。
