通用命令
keys
keys *
:遍历所有 key(* 代表不限长度任意字符)keys ha*
:遍历 ha 开头的keykeys ha[h-l]*
:遍历ha开头,第三个字符是h到l的keykeys ha?
:遍历ha开头,三位长度的key(?代表一位任意字符)
注: keys
生产环境不建议使用。原因:当 key 很大量时候,由于 Redis 是单线程,会阻塞其他命令。
如果需要查询所有key,可使用
scan
命令,或使用热备从节点方式查询。
dbsize
计算 key 的数量。生产环境可使用。原因:Redis 内置机制去计数。
exists key
del key [key …]
删除指定 key 和对应的值。支持删除多个。返回删除成功的数量。
expire key seconds
ttl key
查询 key 的剩余过期时间(单位:秒)。
当有过期时间,则返回过期剩余过期时间;当 key 存在,无过期时间,则返回 -1
;当 key 不存在,则返回 -2
。
persist key
去掉 key 的过期时间,相当于将 key 设置为永不过期。
type key
时间复杂度
命令 | 时间复杂度 |
---|---|
keys | O(n) |
dbsize | O(1) |
del | O(1) |
exists | O(1) |
expire、ttl、persist | O(1) |
type | O(1) |
解释:O(n),代表查询时间消耗,n 随着 key 增加,时间增加。
数据结构与内部编码
依靠内部不同的内部编码,可实现更高效的内存使用。