通用命令

keys

  • keys * :遍历所有 key(* 代表不限长度任意字符
  • keys ha* :遍历 ha 开头的key
  • keys ha[h-l]* :遍历ha开头,第三个字符是h到l的key
  • keys ha? :遍历ha开头,三位长度的key(?代表一位任意字符

注: keys 生产环境不建议使用。原因:当 key 很大量时候,由于 Redis 是单线程,会阻塞其他命令。

如果需要查询所有key,可使用 scan 命令,或使用热备从节点方式查询。

dbsize

计算 key 的数量。生产环境可使用。原因:Redis 内置机制去计数。

exists key

判定一个 key 是否存在,返回值:10

del key [key …]

删除指定 key 和对应的值。支持删除多个。返回删除成功的数量

expire key seconds

给 key 设置一个秒级的过期时间。

ttl key

查询 key 的剩余过期时间(单位:秒)。
当有过期时间,则返回过期剩余过期时间;当 key 存在,无过期时间,则返回 -1;当 key 不存在,则返回 -2

persist key

去掉 key 的过期时间,相当于将 key 设置为永不过期。

type key

返回 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 增加,时间增加。

数据结构与内部编码

Redis 通用命令和数据结构/内部编码 - 图1依靠内部不同的内部编码,可实现更高效的内存使用。