如何在Redis里按模式删除数据
这篇讲的是一个Redis内存突然暴增导致宕机的排查案例。作者从服务器异常消耗几十G内存、最终因SWAP宕机说起,一开始和DBA同事以为是有大键占用了空间,但用工具分析后排除了这个可能。 问题随后转向了另一个方向:即使单个键不大,但大量相同模式的键累计起来,占用的空间也可能非常可观。作者最初想用 `KEYS` 配合 `DEL` 命令批量删除可疑键,结果因为数据量太大,`KEYS` 命令直接让服务器再次崩溃——这暴露了KEYS命令在生产环境中的巨大风险。 最终,作者改用支持游标迭代的 `SCAN` 命令,通过PHP脚本分批扫描并删除目标键,同时监控内存变化,成功锁定了问题源头。整个过程也强调了一个运维要点:除了关注大键,监控Redis键总数的变化幅度同样重要,这能帮助及早发现类似批量写入导致的隐患。