Redis命令時間複雜度查詢表

String類型

命令 時間複雜度
set 0(1)
get 0(1)
del 0(k),k是鍵的個數
mset 0(k),k是鍵的個數
mget 0(k),k是鍵的個數
incr 0(1)
decr 0(1)
incryby 0(1)
decryby 0(1)
incrybyfloat 0(1)
append 0(1)
strlen 0(1)
setrange 0(n),n爲更改字符串長度
getrange 0(n),n爲獲取字符串長度

Hash類型

命令 時間複雜度
hset 0(1)
hget 0(1)
hdel 0(k),k是鍵的個數
hlen O(1)
hgetall 0(k),k是field的個數
hmget 0(k),k是field的個數
hmset 0(k),k是field的個數
hexists O(1)
hkeys 0(k),k是field的個數
hvals 0(k),k是field的個數
hsetnx O(1)
hincrby O(1)
hincrbyfloat O(1)
hstrlen O(1)

List列表

命令 時間複雜度
rpush 0(k),k是field的個數
lpush 0(k),k是field的個數
linsert 0(n),n是插入位置距離表頭或表尾的距離
lrange O(s+n),s是start的偏移量,n是start到end的範圍
lindex O(n),n是索引的偏移量
llen O(1)
lpop O(1)
rpop O(1)
lrem O(n),n是列表的長度
ltrim O(n),n是要裁剪的元素總數
lset O(n),n是索引的偏移量
blpop O(1)

Set集合

命令 時間複雜度
sadd O(k),k爲元素個數
srem O(k),k爲元素個數
scard O(1)
sismember O(1)
srandmember O(count)
spop O(1)
smembers O(n),n爲元素總數
sinter O(m*k),k爲多個集合中元素較少的個數,m是鍵個數
suinon O(k),k爲多個集合元素個數和
sdiff O(k),k爲多個集合元素個數和

Zset有序集合

命令 時間複雜度
zadd O(k*log(n)),k爲添加 成員個數,n爲當前成員個數
zcard O(1)
zscore O(1)

zrank

zrevrank

O(log(n)),n爲當前成員個數
zrem O(k*log(n)),k爲刪除成員個數,n爲當前成員個數
zincrby O(log(n)),n爲當前成員個數

zrange

zrevrange

O(log(n)+k),k爲要獲取成員個數,n爲當前成員個數

zrangebyscore

zrevrangebyscore

O(log(n)+k),k爲要獲取成員個數,n爲當前成員個數
zcount O(log(n)+k),k爲要獲取成員個數,n爲當前成員個數
zremrangebyrank O(log(n)+k),k爲要刪除成員個數,n爲當前成員個數
zremrangebyscore O(log(n)+k),k爲要刪除成員個數,n爲當前成員個數
zinterstore O(n*k) + O(m*log(m)),n是成員數最小的有序集合的成員個數,k是有序集合的個數,m是結果集中成員個數
zunionstore O(n) + O(m*log(m)),n是所有有序集合成員個數和,m是結果集中成員個數

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章