Skip to main content

Redis命令时间复杂度查询表

String类型​

命令时间复杂度
set0(1)
get0(1)
del0(k),k是键的个数
mset0(k),k是键的个数
mget0(k),k是键的个数
incr0(1)
decr0(1)
incryby0(1)
decryby0(1)
incrybyfloat0(1)
append0(1)
strlen0(1)
setrange0(n),n为更改字符串长度
getrange0(n),n为获取字符串长度

Hash类型​

命令时间复杂度
hset0(1)
hget0(1)
hdel0(k),k是键的个数
hlenO(1)
hgetall0(k),k是field的个数
hmget0(k),k是field的个数
hmset0(k),k是field的个数
hexistsO(1)
hkeys0(k),k是field的个数
hvals0(k),k是field的个数
hsetnxO(1)
hincrbyO(1)
hincrbyfloatO(1)
hstrlenO(1)

List列表​

命令时间复杂度
rpush0(k),k是field的个数
lpush0(k),k是field的个数
linsert0(n),n是插入位置距离表头或表尾的距离
lrangeO(s+n),s是start的偏移量,n是start到end的范围
lindexO(n),n是索引的偏移量
llenO(1)
lpopO(1)
rpopO(1)
lremO(n),n是列表的长度
ltrimO(n),n是要裁剪的元素总数
lsetO(n),n是索引的偏移量
blpopO(1)

Set集合​

命令时间复杂度
saddO(k),k为元素个数
sremO(k),k为元素个数
scardO(1)
sismemberO(1)
srandmemberO(count)
spopO(1)
smembersO(n),n为元素总数
sinterO(m*k),k为多个集合中元素较少的个数,m是键个数
suinonO(k),k为多个集合元素个数和
sdiffO(k),k为多个集合元素个数和

Zset有序集合​

命令时间复杂度
zaddO(k*log(n)),k为添加 成员个数,n为当前成员个数
zcardO(1)
zscoreO(1)
zrank

zrevrank
O(log(n)),n为当前成员个数
zremO(k*log(n)),k为删除成员个数,n为当前成员个数
zincrbyO(log(n)),n为当前成员个数
zrange

zrevrange
O(log(n)+k),k为要获取成员个数,n为当前成员个数
zrangebyscore

zrevrangebyscore
O(log(n)+k),k为要获取成员个数,n为当前成员个数
zcountO(log(n)+k),k为要获取成员个数,n为当前成员个数
zremrangebyrankO(log(n)+k),k为要删除成员个数,n为当前成员个数
zremrangebyscoreO(log(n)+k),k为要删除成员个数,n为当前成员个数
zinterstoreO(nk) + O(mlog(m)),n是成员数最小的有序集合的成员个数,k是有序集合的个数,m是结果集中成员个数
zunionstoreO(n) + O(m*log(m)),n是所有有序集合成员个数和,m是结果集中成员个数