上一篇
场景再现:凌晨2点,你正梦见升职加薪💸,突然报警短信连环轰炸——Redis响应超时!线上订单卡死!客服电话被打爆!😱 别慌,这份「Redis线上急救手册」能让你边穿裤子边解决问题!
症状:top
命令看到redis-server吃满CPU,客户端报(error) OOM command not allowed when used memory > 'maxmemory'
急救步骤:
redis-cli --bigkeys
👉 找出体积异常的Key(比如有人误存了10GB的未压缩图片) redis-cli info memory | grep ratio
👉 内存碎片率>1.5就该重启了 config set maxmemory 12GB
(记得事后改配置文件!) 预防针:
EXPIRE monster_key 3600
config set maxmemory-policy allkeys-lru
症状:ERR max number of clients reached
,连监控都挤不进去!
暴力解法:
# 先强行扩桶(默认10000→20000) redis-cli config set maxclients 20000 # 找出"话痨"客户端(3秒内发命令最多的IP) redis-cli client list | awk '{print $2,$3}' | cut -d= -f2 | sort | uniq -c | sort -nr
事后必须做:
try-with-resources
!) maxTotal: 500, maxIdle: 50
症状:从库slave_repl_offset
原地踏步,主库repl_backlog_active=0
快速复位:
# 从库执行(危险动作!先确认数据可丢失) SLAVEOF NO ONE SLAVEOF 主库IP 6379 # 主库优化配置 config set repl-backlog-size 1GB # 默认只有1MB! config set client-output-buffer-limit slave 4GB 2GB 60
血泪经验:
ntpdate
安排上 症状:QPS曲线像过山车🎢,数据库直接被打穿
紧急预案:
# 随机化过期时间(原计划统一30分钟→25~35分钟随机) redis-cli keys "cache:*" | xargs -I{} redis-cli expire {} $((1800 + RANDOM % 600)) # 降级方案(示例伪代码) try { data = redis.get(key); } catch (Exception e) { data = db.query("SELECT..."); // 限流查DB }
设计原则:
症状:redis-cli --latency
显示999ms,但CPU内存都很闲
破案工具:
# 抓取最近10条慢日志(默认超过10ms的记录) redis-cli slowlog get 10 # 实时监控命令耗时(危险!生产慎用) redis-cli --intrinsic-latency 100
经典案例:
KEYS *
→ 用SCAN
替代 HGETALL
→ 拆成HMGET
# 看实时状态(重点关注connected_clients/used_memory) watch -n 1 "redis-cli info | egrep 'clients|memory|ops'" # 生成运维报告(复制到ChatGPT让它分析) redis-cli info all > redis_report.txt # 内存优化神器(RDB分析工具) rdb -c memory dump.rdb --bytes 1024 --largest 5
❌ 禁止生产环境用FLUSHALL
(建议rename-command掉)
❌ 禁止save
手动持久化(用bgsave
!)
❌ 禁止单机多实例不绑CPU(会导致上下文切换爆炸)
当所有招数都失效时:
# 停服务→删坏掉的AOF→用备机AOF替换→重启 systemctl stop redis cp slave_appendaof.aof appendonly.aof redis-check-aof --fix appendonly.aof systemctl start redis
scp backup@192.168.1.100:/var/lib/redis/dump.rdb ./ chown redis:redis dump.rdb redis-server --dbfilename dump.rdb
写在最后:
Redis故障就像发烧🤒,症状相同但病因可能天差地别,本文列出的只是"退烧药",根治还得靠:
业务:功能:ID
三层结构) 现在你可以回去继续做升职梦了——记得把手机调振动📳!
本文由 圭伟懋 于2025-08-01发表在【云服务器提供商】,文中图片由(圭伟懋)上传,本平台仅提供信息存储服务;作者观点、意见不代表本站立场,如有侵权,请联系我们删除;若有图片侵权,请您准备原始证明材料和公证书后联系我方删除!
本文链接:https://vps.7tqx.com/wenda/506543.html
发表评论