redis 学习(二)-- 通用命令

时间:2023-03-09 08:51:37
redis 学习(二)-- 通用命令

redis 学习(二)-- 通用命令

1. keys pattern

含义:查找所有符合给定模式(pattern)的key

命令 含义
keys * 遍历所有 key
keys he[h-l]* 遍历以he开头,第三个字符为h-l之间的所有key
keys ph? ?代表一个字符
keys he* 匹配所有以 he 开头的 key
dbsize 计算 key 的总数

注意:keys命令一般不在生产环境中使用

  • 生产环境的key比较多,keys这个命令是一个O(n)的命令
  • 由于Redis是单线程的,这个命令的操作会阻塞其他操作
  • 可以在从节点上执行keys命令
  • 使用SCAN命令代替keys命令

演示

keys *
dbsize

redis 学习(二)-- 通用命令

keys he*
keys he[h-l]*
keys ph?

redis 学习(二)-- 通用命令

2. exists key

含义:检查给定的key是否存在

存在返回 1,不存在返回 0 。

redis 学习(二)-- 通用命令

3. del key1 [key2...]

含义:在 key 存在时删除 key

存在返回 1, 不存在返回 0 。

redis 学习(二)-- 通用命令

4. expire key second、ttl key、persist key、

命令 含义
expire key second 为给定 key 设置过期时间,单位为秒
ttl key 以秒为单位,返回给定key的剩余生存时间(TTL , time to live)。不存在 key 返回 -2 ,无过期时间的 key 返回-1
persist key 移除 key 的过期时间,key 将持久保存

redis 学习(二)-- 通用命令

redis 学习(二)-- 通用命令

5. type

返回 key 所存储的值的类型

不存在的 key 返回none

redis 学习(二)-- 通用命令

时间复杂度

命令 时间复杂度
keys O(n)
dbsize O(1)
del O(1)
exists O(1)
expire O(1)
type O(1)

可以看到,keys 的时间复杂度为 O(n),所以是并不适合实际使用的。