2.5.1 添加元素
zadd key score member
添加元素到集合,元素在集合中存在则更新对应score。
2.5.2 删除元素
zrem key member
1表示成功,如果元素不存在返回0
zremrangebyrank key min max
删除集合中排名在给定区间的元素
zremrangebyscore key min max
删除集合中score在给定区间的元素
2.5.3 增加score
zincrby key incr member
增加对应member的score值,然后移动元素并保持skip list保持有序。返回更新后的score值,可以为负数递减
2.5.4 获取排名
zrank key member
返回指定元素在集合中的排名(下标,注意不是分数),集合中元素是按score从小到大排序的
zrevrank key member
同上,但是集合中元素是按score从大到小排序
2.5.5 获取排行榜
zrange key start end
类似lrange操作从集合中去指定区间的元素。返回的是有序结果
zrevrange key start end 同上,返回结果是按score逆序的,如果需要得分则加上withscores
注:index从start到end的所有元素
2.5.6 返回给定分数区间的元素
zrangebyscore key min max
可以指定inf为无穷
2.5.7 返回集合中score在给定区间的数量
zcount key min max
2.5.8 返回集合中元素个数
zcard key
2.5.9 返回给定元素对应的score
zscore key element
2.5.10 评分的聚合
ZUNIONSTORE destination numkeys key [key ...] [WEIGHTS weight] [AGGREGATE SUM|MIN|MAX]
例如:
127.0.0.1:6379> zrangebyscore votes -inf inf withscores
1) "sina"
2) "1"
3) "google"
4) "5"
5) "baidu"
6) "10"
127.0.0.1:6379> zrangebyscore visits -inf inf withscores
1) "baidu"
2) "1"
3) "google"
4) "5"
5) "sina"
6) "10"
127.0.0.1:6379> zunionstore award 2 visits votes weights 1 2 aggregate sum
(integer) 3
127.0.0.1:6379> zrangebyscore award -inf inf withscores
1) "sina"
2) "12"
3) "google"
4) "15"
5) "baidu"
6) "21"
一个小技巧是如果需要对评分进行倍加,则使用如下的方法:
127.0.0.1:6379>zrangebyscore visits -inf inf withscores
1) "baidu"
2) "1"
3) "google"
4) "5"
5) "sina"
6) "10"
127.0.0.1:6379>zunionstore visits 1 visits weights 2
(integer) 3
127.0.0.1:6379>zrangebyscore visits -inf inf withscores
1) "baidu"
2) "2"
3) "google"
4) "10"
5) "sina"
6) "20"
**本文为《Redis开发运维实践指南》内容,该书作者为黄鹏程,已授权云栖社区转载。**