首页/数据/Redis 进阶速查/TTL 批量检查与过期状态判定
性能与排障129 条

TTL 批量检查与过期状态判定

TTL 返回 -1(存在但无过期)与 -2(键不存在)两种特殊值;批量检查用 SCAN 迭代配合管道,避免在生产实例上用 KEYS 全量扫描。

Redis 进阶速查数据更新于 2026-10-12
单键TTL key / PTTL key
返回-2 不存在,-1 无过期,其余为剩余秒数
批量SCAN 迭代加 redis-cli 管道

批量示例

批量示例
redis-cli --scan --pattern 'session:*' | head -100 | while read k; do echo $k; redis-cli ttl $k; done
redis-cli --scan 走 SCAN 游标不会长时间阻塞;更大批量可以用 --pipe 模式减少连接开销。

易错点

  • 把 TTL 返回 -2 当成永久键会误判,-2 实际是键已不存在
  • 循环里逐条调用 redis-cli 会不断新建连接,量级上万时应改 Lua 或 --pipe 批量处理

数据来源与参考

  • Redis 官方文档:TTL / PTTL 命令
  • redis-cli 手册:--scan 选项
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌