【八】redis数据结构之zset有序集合,命令及时间复杂度

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)

【八】redis数据结构之zset有序集合,命令及时间复杂度_第1张图片

【八】redis数据结构之zset有序集合,命令及时间复杂度_第2张图片

zrevrange key start stop [withscores]    查询有序集合成指定排名区间内的成员,倒叙,下标从0开始

【八】redis数据结构之zset有序集合,命令及时间复杂度_第3张图片

【八】redis数据结构之zset有序集合,命令及时间复杂度_第4张图片

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)

【八】redis数据结构之zset有序集合,命令及时间复杂度_第5张图片

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 中

 

你可能感兴趣的:(redis)