[转帖]Redis各种命令时间复杂度一览表

redis,各种,命令,时间,复杂度,一览表 · 浏览次数 : 0

小编点评

| 命令类型 | 命令时间复杂度 | |---|---| | set0(k) | O(1) | | get0(k) | O(1) | | del0(k) | O(k) | | incr0(1) | O(1) | | decr0(1) | O(1) | | incryby0(1) | O(1) | | decryby0(1) | O(1) | | incrybyfloat0(1) | O(1) | | append0(1) | O(1) | | strlen0(1) | O(1) | | range0(n) | O(n) | | hset0(k) | O(1) | | hget0(1) | O(1) | | hdel0(k) | O(k) | | hgetall0(k) | O(k) | | hmget0(k) | O(k) | | hmset0(k) | O(1) | | hexistsO(1) | O(k) | | hkeys0(k) | O(k) | | hvals0(k) | O(k) | | hsetnxO(1) | O(k) | | incrbyO(1) | O(1) | | decrbyfloatO(1) | O(1) | | hstrlenO(1) | O(1) | | rpush0(k) | O(k) | | lpush0(k) | O(k) | | linsert0(n) | O(n) | | lrangeO(s+n) | O(s+n) | | llenO(1) | O(1) | | lpopO(1) | O(1) | | rpopO(1) | O(1) | | lremO(n) | O(n) | | ltrimO(n) | O(n) | | lsetO(n) | O(n) | | blpopO(1) | O(1) | | saddO(k) | O(k) | | sremO(k) | O(k) | | scardO(1) | O(k) | | smemberO(1) | O(k) | | srandmemberO(count) | O(k) | | spopO(1) | O(k) | | smembersO(n) | O(k) | | zaddO(k*log(n)) | O(k*log(n)) | | zaddO(k) | O(k) | | zrankO(log(n)) | O(log(n)) | | zrevrangeO(log(n)) | O(log(n)) | | zremO(k*log(n)) | O(k*log(n)) | | zscoreO(1) | O(1) | | zrankbyscoreO(log(n)+k) | O(log(n)+k) | | zrevrangebyscoreO(log(n)+k) | O(log(n)+k) | | zcountO(log(n)+k) | O(log(n)+k) | | zremrangebyrankO(log(n)+k) | O(log(n)+k) | | zremrangebyscoreO(log(n)+k) | O(log(n)+k) | | zinterstoreO(nk) + O(mlog(m)) | O(nk*log(m)) | | zunionstoreO(n) + O(m*log(m)) | O(n*m*log(m)) |

正文

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)
zrankO(log(n)),n为当前成员个数
zrevrangeO(log(n)),n为当前成员个数
zremO(k*log(n)),k为删除成员个数,n为当前成员个数
zincrbyO(log(n)),n为当前成员个数
zrangeO(log(n)+k),k为要获取成员个数,n为当前成员个数
zrevrangeO(log(n)+k),k为要获取成员个数,n为当前成员个数
zrangebyscoreO(log(n)+k),k为要获取成员个数,n为当前成员个数
zrevrangebyscoreO(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是结果集中成员个数

与[转帖]Redis各种命令时间复杂度一览表相似的内容:

[转帖]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)se

[转帖]Redis 性能优化的 13 条军规!史上最全

https://zhuanlan.zhihu.com/p/118532234 Redis性能优化实战方案 Redis 是基于单线程模型实现的,也就是 Redis 是使用一个线程来处理所有的客户端请求的,尽管 Redis 使用了非阻塞式 IO,并且对各种命令都做了优化(大部分命令操作时间复杂度都是 O

[转帖]Redis故障检查:识别慢查询操作

https://weibo.com/ttarticle/p/show?id=2309404650615585505652 使用SLOWLOG命令查看Redis中的慢查询操作。 ​​前几篇日志总结了下对Redis部署时的一些配置,Redis启动后,面对各种请求,数据持久化到硬盘,很可能会出现内存不足等

[转帖]Redis Info 命令

https://www.runoob.com/redis/server-info.html Redis Info 命令以一种易于理解和阅读的格式,返回关于 Redis 服务器的各种信息和统计数值。 通过给定可选的参数 section ,可以让命令只返回某一部分的信息: server : 一般 Red

[转帖]Redis各版本特性汇总

redis4redis5redis6redis6.2重大特性1.模块系统 2.PSYNC2 3.LFU淘汰策略 4.混合RDB-AOF持久化 5.LAZY FREE延迟释放 6.MEMORY内存分析命令 7.支持NAT/DOCKER 8.主动碎片整理 1.新增Stream数据类型 2.新增Redis

[转帖]Redis各版本特性汇总

redis4redis5redis6redis6.2重大特性1.模块系统 2.PSYNC2 3.LFU淘汰策略 4.混合RDB-AOF持久化 5.LAZY FREE延迟释放 6.MEMORY内存分析命令 7.支持NAT/DOCKER 8.主动碎片整理 1.新增Stream数据类型 2.新增Redis

[转帖]Docker配置文件/etc/docker/daemon.json详解

该文件作为Docker Engine的配置管理文件,几乎涵盖了所有docker命令行启动可以配置的参数。默认是没有的,需要手动创建 docker- daemon.json各配置详解 { "allow-nondistributable-artifacts": [], #不对外分发的产品提交的regis

[转帖]【redis】redis各稳定版本特性(更新到6.0版本)

1.Redis2.6 Redis2.6在2012年正是发布,经历了17个版本,到2.6.17版本,相对于Redis2.4,主要特性如下: 1)服务端支持Lua脚本。 2)去掉虚拟内存相关功能。 3)放开对客户端连接数的硬编码限制。 4)键的过期时间支持毫秒。 5)从节点支持只读功能。 6)两个新的位

[转帖]Redis之安全措施

指令安全 Redis的一些指令会对Redis服务的稳定性及安全性各方面造成影响,例如keys指令在数据量大的情况下会导致Redis卡顿,flushdb和flushall会导致Redis的数据被清空。 Redis在配置文件中提供了 rename-command 指令用于将一些危险的指令修改成其他指令,

[转帖]Redis配置文件介绍

https://www.cnblogs.com/fanqisoft/p/10422381.html Redis在源码包中存放了一个Redis配置实例文件,文件中对各个配置点进行了简单的介绍,我也通过这个文件来对Redis的一些配置进行一些简单介绍。 一.UNITS(单位)【了解】 1.Redis服务