dev.to | 📄 原文链接 | 2026-10-04 收录

Redis 说键已经没了,内存却在 22 秒后才回来

来源:dev.to — 2026-10-02

📋 概述

带 TTL 的键在过期瞬间就「不存在」了:GET 返回 nil、EXISTS 返回 0,对应用而言它已经消失。作者想弄清的是内存何时才真正释放,因为这两件事并不是同一个事件。在空闲服务器上让五百万个键同时过期,答案略低于 23 秒——在这段时间里 Redis 一直为这些「所有客户端都认定不存在」的数据占用着数百 MB 内存。更出乎意料的是:繁忙的 Redis 清理速度比空闲时快四倍以上。作者还提醒,如果键的过期时间被分散开,这个问题根本不会出现,必须给所有键同一个绝对截止时间才能复现——这正是整点汇总缓存或按天批量导入的典型形态。

🔑 核心要点

💡 金句

键消失和内存回来,不是同一个事件——我只是想知道中间差了多久。
← 返回 dev.to 首页