上一篇
场景引入:
凌晨3点,你的手机突然狂震——线上服务的响应速度暴跌!💥 排查发现Redis内存爆满,关键缓存失效导致数据库压力激增… 如果提前监控到Redis的关键指标,这类问题完全能避免!今天我们就手把手教你用Redis自带工具和常用指令,像老司机一样玩转监控!
Redis作为高性能缓存/数据库,一旦出现以下问题,可能引发雪崩:
maxmemory
触发的键驱逐 maxclients
限制导致新连接拒绝 监控核心目标:提前预警、快速定位、性能优化!
INFO
命令:一键获取全量指标 📊执行 INFO
可查看所有运行时数据,按模块筛选更高效:
# 查看内存情况 redis-cli INFO memory # 输出示例:used_memory_human:1.2G | maxmemory_human:2G # 查看客户端连接 redis-cli INFO clients # 输出示例:connected_clients:42 | maxclients_limit:10000
关键指标:
memory
:used_memory
(已用内存)、mem_fragmentation_ratio
(碎片率>1.5需警惕) stats
:instantaneous_ops_per_sec
(每秒操作数)、keyspace_hits/misses
(缓存命中率) replication
:master_link_status:up
(主从状态) MONITOR
命令:实时监听所有操作 👂redis-cli MONITOR # 输出示例:1651234567.789012 [0 127.0.0.1:55321] "GET" "user:1001"
⚠️ 注意:生产环境慎用!高频请求下会导致性能下降。
SLOWLOG
:抓出拖慢Redis的"元凶" 🐢# 查询最近5条慢查询(默认阈值10毫秒) redis-cli SLOWLOG GET 5 # 调整慢查询阈值为5毫秒 redis-cli CONFIG SET slowlog-log-slower-than 5000
输出字段解释:
timestamp
:发生时间 duration
:耗时(微秒) command
:具体命令(如KEYS *
这种高危操作一目了然) redis_exporter
+ Prometheus + Grafanaredis_exporter
采集指标 #!/bin/bash # 监控Redis内存使用率 REDIS_HOST="127.0.0.1" USED_MEMORY=$(redis-cli -h $REDIS_HOST INFO memory | grep "used_memory:" | cut -d: -f2) MAX_MEMORY=$(redis-cli -h $REDIS_HOST INFO memory | grep "maxmemory:" | cut -d: -f2) USAGE_PERCENT=$((USED_MEMORY * 100 / MAX_MEMORY)) if [ $USAGE_PERCENT -gt 85 ]; then echo "⚠️ Redis内存告警:使用率${USAGE_PERCENT}%!" | mail -s "Redis监控警报" admin@example.com fi
activedefrag yes
CLIENT LIST
中空闲连接,用CLIENT KILL
清理 master_repl_offset
与slave_repl_offset
差值 通过INFO
+SLOWLOG
+外部监控工具组合拳,你可以:
✅ 实时掌握Redis健康状态
✅ 快速定位性能瓶颈
✅ 避免半夜被报警电话叫醒!
(本文参考Redis 7.2官方文档及2025年运维实践案例)
本文由 谷梁凝雨 于2025-08-05发表在【云服务器提供商】,文中图片由(谷梁凝雨)上传,本平台仅提供信息存储服务;作者观点、意见不代表本站立场,如有侵权,请联系我们删除;若有图片侵权,请您准备原始证明材料和公证书后联系我方删除!
本文链接:https://up.7tqx.com/wenda/539791.html
发表评论