# 过期机制

URL: https://caijiao.org/memcached/04-advanced/01-expiration
Source: docs/memcached/04-advanced/01-expiration.md
Description: 本章节介绍 Memcached 的过期机制，包括缓存数据的生命周期管理、过期时间设置及其实现原理，帮助用户合理控制缓存有效期。

Memcached 通过设置过期时间（TTL，Time To Live）来管理缓存数据的生命周期，确保缓存中的数据不会无限制地占用内存。

## 过期时间设置

在存储数据时，可以指定一个过期时间，单位为秒：

- `0` 表示数据永不过期，除非被主动删除或被淘汰。  
- 大于 30 天（2592000 秒）的值被当作 Unix 时间戳处理，即绝对时间点。  

例如：

```bash
set key 0 3600 5
value
````

表示该数据在 3600 秒后过期。

## 过期机制原理

Memcached 采用惰性过期策略，即只有当数据被访问时，才检查是否过期：

* 如果访问到的数据已过期，则被视为不存在，客户端无法读取。
* 过期数据会在后续存储操作中被新数据覆盖，或者被内存淘汰机制清理。

这种机制保证了系统性能，避免频繁扫描过期数据。

## 小结

合理设置过期时间，可以控制缓存大小，保证数据新鲜度，同时避免内存浪费。
