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是结果集中成员个数