redis原始碼分析與思考(十七)——有序集合型別的命令實現(t_set.c)
阿新 • • 發佈:2018-12-15
有序集合是集合的延伸,它儲存著集合元素的不可重複性,但不同的是,它是有序的,它利用每一個元素的分數來作為有序集合的排序依據,現在列出有序集合的命令:
有序集合命令
命令 | 對應操作 | 時間複雜度 |
---|---|---|
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) |