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),所以是并不适合实际使用的。

浙公网安备 33010602011771号