zset有序集合,元素不重复。
可用于排行榜(新旧程度排名,score可以用时间戳)。
结构
key score value
rank 15 a
35 b
28 c
94 d
8 e
跟普通的set比起来,每一个element都多了一个score。score可以重复,element不能重复。
集合内命令
zadd key score element 向有序集合中添加score和element 时间复杂度 o(logN)
zscore key element 获取element的分数 时间复杂度o(1)
zincrby key increScore element 自增element的分数 时间复杂度o(1)
zcard key 返回有序集合中元素的个数 时间复杂度o(1)
zrank key element 获取元素排名,下标从0开始
ZREVRANK key member 获取元素排名,倒叙
zrange key start end [withscores] 查询有序集合成指定排名区间内的成员,下标从0开始 时间复杂度o(log(n)+m)
zrevrange key start stop [withscores] 查询有序集合成指定排名区间内的成员,倒叙,下标从0开始
zrangebyscore key minScore maxScore [withscores] 查询有序集合指定分数区间内的成员 时间复杂度o(log(n)+m)
zrevrangebyscore key maxScore minScore [withscores] 查询有序集合指定分数区间内的成员,倒叙
zcount key minScore maxScore 计算在有序集合中指定分数区间的成员数 时间复杂度o(log(n)+m)
zrem key element 删除有序集合中的element 时间复杂度o(1)
zremrangebyrank key start end 移除有序集合中给定的排名区间的所有成员,从0开始 时间复杂度o(log(n)+m)
zremrangebyscore key minScore maxScore 移除有序集合中给定的分数区间的所有成员 时间复杂度o(log(n)+m)
集合间命令
ZINTERSTORE destination numkeys key [key ...] 计算给定的一个或多个有序集的交集并将结果集存储在新的有序集合 key 中
ZUNIONSTORE destination numkeys key [key ...] 计算给定的一个或多个有序集的并集,并存储在新的 key 中