# 2.2通用命令

## keys

说明：遍历所有的key

用法：keys \[pattern]

算法复杂度：O(n)

示例：

```bash
keys * 
keys he[h-l]
keys he*
```

注意：不要在生产环境中使用`keys`命令，Keys的算法复杂度为O(n)，假设有100万个key，那么执行keys命令将遍历这100万个key。运行起来会非常慢

若想要在生产环境中获取key，建议使用： 热备从节点 scan

## dbsize

说明：计算key的总数

用法：dbsize

算法复杂度：O(1)

示例

```bash
```

redis使用**内置计数器**来记录key的个数，当使用dbsize时，直接获取**内置计数器**的值返回，而不是遍历整个key，从而实现了dbsize的算法复杂度只为O(1)

## exists

说明：判断一个key是否存在，key存在返回1，key不存在返回0

用法：exists \[key]

算法复杂度：O(1)

示例

```bash
```

## del

说明：删除指定key-value，删除成功返回1；若key不存在，当执行删除操作时会失败，返回值为0

用法： key \[key...]

算法复杂度：O(1)

示例

```bash
```

## expire

说明：设置key在seconds秒后过期

用法： expire \[key] \[seconds]

算法复杂度：O(1)

示例

```bash
```

## ttl

说明：查看key的剩余时间。当key存在却没设置过期时间时返回-1；若key已过期返回-2

用法：ttl \[key]

算法复杂度：O(1)

示例

```bash
```

## persist

说明：去掉key的过期时间

用法：persist \[key]

算法复杂度：O(1)

示例

```bash
```

## type

说明：返回key的类型，当key存在时，根据key的类型返回string、hash、list、set、zset；当key不存在返回none

用法：type \[key]

算法复杂度：O(1)

示例

```bash
```
