| 过期策略 | 惰性删除(访问时判断)+ 定期删除(每 100ms 抽样),两者结合 |
| 内存淘汰策略 | noeviction、allkeys-lru/lfu、volatile-lru/lfu/ttl/random |
| LRU vs LFU | LRU 看最近访问时间,LFU 看访问频次;突发的全表扫描会让 LRU 误伤热点,LFU 更适合缓存 |
maxmemory | 必须显式设置,否则 Redis 会一直吃到 OOM 被系统杀掉 |
| maxmemory-policy 选择 | 纯缓存场景用 allkeys-lfu;有不能丢的 key 时用 volatile-* 并给它们设 TTL |
| 内存碎片率 | mem_fragmentation_ratio,大于 1.5 且持续偏高时考虑 activedefrag |
| 大 Key | 单个 value 过大(如 >10KB 或元素数 >5000);删除/读取都会阻塞主线程,要拆分成多个 key |
| 热 Key | 单 key QPS 极高;靠本地缓存、多副本打散、读写分离缓解 |
| Key 命名规范 | 业务前缀 + 冒号分层(user:1001:profile),便于统计与批量清理 |
MEMORY USAGE / redis-cli --bigkeys | 扫描大 key;生产上用 --bigkeys 要在低峰执行 |
| 删除大 key 的姿势 | 用 UNLINK(异步删除)或 SCAN 分批删,别用 DEL 直接删 |