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
keys he*
keys he[h-l]*
keys ph?
2. exists key
含义:检查给定的key是否存在
存在返回 1,不存在返回 0 。
3. del key1 [key2...]
含义:在 key 存在时删除 key
存在返回 1, 不存在返回 0 。
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 将持久保存 |
5. type
返回 key 所存储的值的类型
不存在的 key 返回none
时间复杂度
命令 | 时间复杂度 |
---|---|
keys | O(n) |
dbsize | O(1) |
del | O(1) |
exists | O(1) |
expire | O(1) |
type | O(1) |
可以看到,keys 的时间复杂度为 O(n),所以是并不适合实际使用的。