Redis学习笔记(六)类型之有序集合

来源:互联网 时间:1970-01-01


有序集合类型(sorted set),在集合类型的基础上,为集合中的每个元素都关联了一个分数。支持获得分数最高(或最低)的前N个元素、获得指定分数范围内的元素等与分数有关的操作。

有序集合类型使用散列表和跳跃表实现的。

 

命令:

1、有序集合增加元素

ZADD key score member [score member ...]

如果元素已经存在,则修改元素的分数。分数不仅可以是整数,还支持双精度浮点数。+inf和-inf表示正无穷和负无穷

redis>ZADD testboard 17E+307 a

redis>ZADD testboard +inf c

redis>ZADD testboard -inf d

 

2、获得元素的分数

ZSCORE key member

 

3、获得排名在某个范围的元素列表

ZRANGE key start stop [WITHSCORES]

ZREVRANGE key start stop [WITHSCORES]

ZRANGE命令会按照元素分数从小到大的顺序返回索引从start到stop之间的所有元素。包括两端。-1表示最后一个元素。加上后面的WITHSCORES,返回的结果会跟上元素的分数。ZREVRANGE按照从大到小的顺序返回结果。

 

4、获得指定分数范围的元素

ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offsetcount]

ZREVRANGEBYSCORE key max min [WITHSCORES] [LIMIToffset count]

如果希望分数范围不包含端点值,可以在分数前加上“(”符号。redis> ZRANGEBYSCORE scoreboard 80(100

 

5、增加某个元素的分数

ZINCRBY key increment member

 

6、获得有序集合中元素数量

ZCARD key

 

7、获得指定分数范围内的元素个数

ZCOUNT key min max

 

8、删除一个或多个元素

ZREM key member [member ...]

 

9、按照排名范围删除元素

ZREMRANGEBYRANK key start stop

 

10、按照分数范围删除元素

ZREMRANGEBYSCORE key min max

 

11、获得元素排名

ZRANK key member

ZREVRANK key member

 

12、计算有序集合的交集/并集

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

ZUNIONSTORE destination numkeys key [key ...] [WEIGHTSweight [weight ...]] [AGGREGATE SUM|MIN|MAX]

destination键中元素的分数是由AGGREGATE参数决定的,默认是SUM。SUM是各参与计算的集合中该元素分数的和,MIN是最消息,MAX是最大值。

通过WEIGHTS参数设置每个集合的权重,每个集合在参与计算时元素的分数会被乘上该集合的权重。

redis>ZINTERSTORE result 2 sortedset1 sortedset2 WEIGHTS 1 0.1





相关阅读:
Top