有序的set集合,根据每个值的分值来排序,分值相等根据element的ascii码排序。同样区分正数索引、负数索引。本节建议score有一定的业务含义,会适用于很多场景。
api
基本操作
命令 | 说明 |
---|---|
ZADD key score element... | 存储元素 |
ZREM key elementelement... | 从集合中删除元素 |
ZSCORE key element | 获取集合中元素的分值 |
ZINCRBY key {increment} element | 对score增加{increment},element不存在则新增 |
ZCARD key | 获取集合中元素的个数 |
ZRANGE key start stop | 正序过去集合,score从start到stop |
ZREVRANGE key start stop | 倒叙过去集合,score从start到stop |
127.0.0.1:6379> zadd whoisoldman 18 far 18 ally 20 jayden
(integer) 3
127.0.0.1:6379> ZRANGE whoisoldman 0 -1
1) "ally"
2) "far"
3) "jayden"
127.0.0.1:6379>
集合运算操作
命令 | 说明 |
---|---|
ZINTERSTORE {resultKey} numkeys key key... | 交集运算,保存到resultKey中 |
ZUNIONSTORE {resultKey} numkeys key key... | 并集运算,保存到resultKey中 |
应用场景
统计运算排序
统计两天内的每款手机销售总量,并排序。将销售数量当作score,然后取两天的并集。
热点新闻排行榜
代码语言:txt复制# 将点击数作为score,没点一次进行加1
ZINCRBY hotnews::20190528 1 李可首位归化国脚
# 展示排行,倒叙取10条,并携带score输出
ZREVRANGE hotnews::20190528 0 10 WITHSCORES
# 实现周榜、月榜,参照上一小节的统计运算
SUNIONSTORE union::20190527::201900602 hotnews::20190528 ... hotnews::201900602