1. 程式人生 > >redis原始碼分析與思考(十七)——有序集合型別的命令實現(t_set.c)

redis原始碼分析與思考(十七)——有序集合型別的命令實現(t_set.c)

    有序集合是集合的延伸,它儲存著集合元素的不可重複性,但不同的是,它是有序的,它利用每一個元素的分數來作為有序集合的排序依據,現在列出有序集合的命令:

有序集合命令

命令 對應操作 時間複雜度
zadd key score member [score member…] 新增成員 O(n)
zcard key 計算成員個數 O(1)
zscore key member 計算成員的分數 O(1)
zrank key member 計算成員的排名 O(logn)
zrem key member [member…] 刪除成員 O(logn)
zincrby key increment member 增加成員的分數 O(logn)
zrange key start end [withscores] 返回指定排名的成員 O(logn)
zrangebyscore key min max [withscores] 返回指定分數範圍內的成員 O(logn)
zcount key min max 返回指定分數範圍內的成員個數 O(logn)
zremrangebyrank key start end 刪除第start到第end名的成員 O(logn)
zremrangebyscore key min max 刪除指定分數範圍內的成員 O(logn)
zinterstore destination numkeys key [key…] 計算交集儲存在目標鍵 O(logn)
zunionstore destination numkeys key [key…] 就算並集儲存在目標鍵 O(logn)