过期时间和 Key 设计
Redis 经常保存临时数据和缓存数据,TTL 是非常重要的设计点。
没有过期策略的缓存会越来越多,最后占满内存。
一、设置过期时间
单独设置过期时间:
写入时设置过期时间:
毫秒级:
查看 TTL:
二、TTL 返回值
示例:
三、移除过期时间
PERSIST 会移除 TTL,让 key 变成永久 key。
四、覆盖写入会影响 TTL
普通 SET 会覆盖 value,也会清除旧 TTL。
第二次 TTL 会返回 -1。
需要保留 TTL 时可以使用 KEEPTTL:
五、Key 命名
推荐使用业务前缀加冒号分层:
示例:
常见规范:
六、Key 生命周期
不同数据设置不同 TTL:
核心原则:
- 临时数据必须有 TTL。
- 缓存数据通常要有 TTL。
- 计数类数据需要明确同步或落库策略。
- 永久 key 要能说清楚为什么永久。
七、内存淘汰策略
Redis 内存达到 maxmemory 限制后,会按配置的淘汰策略处理 key。
常见策略:
缓存场景经常使用 allkeys-lru 或 allkeys-lfu。核心数据不能只依赖 Redis 淘汰策略保护,仍然要有主数据源。

