# DEL / EXPIRE / TTL

URL: https://caijiao.org/redis/02-basics/02-del-expire
Source: docs/redis/02-basics/02-del-expire.md
Description: DEL、EXPIRE 和 TTL 是 Redis 中用于键的管理命令，分别用于删除键、设置键的过期时间以及查询键剩余存活时间，帮助实现数据的有效管理和生命周期控制。

Redis 提供多种命令帮助管理键的生命周期和状态，主要包括 `DEL`、`EXPIRE` 和 `TTL`。

## DEL 命令

`DEL` 用于删除一个或多个指定的键，删除后数据将无法恢复。

语法：

```bash
DEL key [key ...]
````

示例：

```bash
DEL session:123 user:1
```

删除键 `session:123` 和 `user:1`。

## EXPIRE 命令

`EXPIRE` 用于为指定键设置过期时间（秒），超过时间后，键会被自动删除。

语法：

```bash
EXPIRE key seconds
```

示例：

```bash
EXPIRE user:1 300
```

表示键 `user:1` 在 300 秒后过期。

如果想要精确到毫秒，可以使用 `PEXPIRE` 命令。

## TTL 命令

`TTL` 用于查询指定键的剩余生存时间（秒）。

语法：

```bash
TTL key
```

返回值说明：

* 返回剩余秒数（整数），表示键还有多久过期。
* 返回 `-1` 表示该键存在但没有设置过期时间。
* 返回 `-2` 表示该键不存在。

示例：

```bash
TTL user:1
```

返回：

```
120
```

表示 `user:1` 键还有 120 秒过期。

## 应用场景

结合使用 `DEL`、`EXPIRE` 和 `TTL` 命令，可以灵活管理缓存数据生命周期，实现自动清理过期数据，提升系统性能与稳定性。
