上一篇
场景还原:凌晨3点,你正做着美梦,突然被报警短信惊醒——"Redis缓存命中率暴跌50%!" 登录服务器一看,核心业务的用户会话Key集体蒸发,评论区瞬间变成"未登录状态"… 别慌!这可能是每个Redis运维人都经历过的惊魂时刻 😱
# 本想设置30天过期,手滑写成30秒... SET user:session 123456 EX 30 # 秒!不是天!
💡 解决方案:
TTL key
检查剩余时间 SET user:session 123456 EXPIRE user:session 2592000 # 30天=2592000秒
当内存不足时,Redis会根据maxmemory-policy
清理Key:
allkeys-lru
(最近最少使用) volatile-ttl
(快过期的先删) 🚨 血泪案例:某电商大促时未调整策略,导致购物车Key被LRU误删
💡 解决方案:
INFO memory
永不过期
+单独实例 CONFIG SET maxmemory-policy volatile-lru
# 批量删除时误用通配符 DEL user:* # 把user_profile也删了!
💡 解决方案:
SCAN
预览待删Key: SCAN 0 MATCH user:temp_* COUNT 100
rename-command DEL
重命名危险命令 从节点同步失败时可能自动执行FLUSHDB
!
📌 必查项:
INFO replication # 查看slave状态 CONFIG GET repl-backlog-size # 建议调大缓冲
🔧 应对组合拳:
# 启用混合持久化(Redis 4.0+) appendonly yes aof-use-rdb-preamble yes # 缩短RDB间隔 save 900 1 # 15分钟至少1次修改 save 300 10 # 5分钟至少10次修改
# 实时监控危险操作 redis-cli --intrinsic-latency 100 redis-cli monitor | grep -E "DEL|EXPIRE" # 慢查询日志 CONFIG SET slowlog-log-slower-than 10000
定期测试:
# Python示例:操作前先备份 pipe = r.pipeline() pipe.get("important_key") pipe.set("important_key_backup", pipe.execute()[0]) pipe.expire("important_key_backup", 3600) pipe.execute()
CONFIG SET stop-writes-on-bgsave-error yes
redis-check-rdb dump.rdb
redis-check-aof --fix appendonly.aof
指标 | 危险阈值 | 检查命令 |
---|---|---|
内存使用率 | >90% | INFO memory |
Key淘汰数/分钟 | >100 | INFO stats |
持久化失败次数 | 连续3次 | INFO persistence |
主从延迟(秒) | >10 | INFO replication |
最后忠告:Redis的Key就像记忆碎片🧩,定期用redis-rdb-tools
分析备份文件,比出事后再哭强!记得把本文加入你的运维应急手册哦~ ✨
本文由 随寻菱 于2025-08-04发表在【云服务器提供商】,文中图片由(随寻菱)上传,本平台仅提供信息存储服务;作者观点、意见不代表本站立场,如有侵权,请联系我们删除;若有图片侵权,请您准备原始证明材料和公证书后联系我方删除!
本文链接:https://vps.7tqx.com/wenda/536975.html
发表评论