有序的set集合,根据每个值的分值来排序,分值相等根据element的ascii码排序。同样区分正数索引、负数索引。本节建议score有一定的业务含义,会适用于很多场景。
api
基本操作
命令 |
说明 |
ZADD key score element[…] |
存储元素 |
ZREM key element[element…] |
从集合中删除元素 |
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 |
1 2 3 4 5 6 7
| 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,然后取两天的并集。
热点新闻排行榜
1 2 3 4 5 6 7 8
| ZINCRBY hotnews::20190528 1 李可首位归化国脚
ZREVRANGE hotnews::20190528 0 10 WITHSCORES
SUNIONSTORE union::20190527::201900602 hotnews::20190528 ... hotnews::201900602
|