Redis 监控与调优

Redis 运维监控与调优

1.1 Redis 配置优化

🎯 常见优化目标

  • 提升性能
  • 降低内存占用
  • 避免服务雪崩

🧠 内存管理参数调优

maxmemory

设置 Redis 使用的最大内存。

1
2
# redis.conf 示例
maxmemory 1gb

Redis 内存使用超过该限制后,才会触发清除策略。

maxmemory-policy

定义内存淘汰策略:

策略 说明
noeviction 达到内存后拒绝写入
allkeys-lru 所有 key 中淘汰最近最少使用的
volatile-lru 设置了 TTL 的 key 中淘汰最近最少使用的
allkeys-random 随机淘汰所有 key
volatile-ttl TTL 最短的 key 被淘汰

Python 示例(设置配置并连接):

1
2
3
4
5
import redis

r = redis.StrictRedis(host='localhost', port=6379, db=0)
r.config_set('maxmemory', '100mb')
r.config_set('maxmemory-policy', 'allkeys-lru')

🧨 TTL 合理设置

设置过期时间避免内存泄漏。

1
2
# 设置 key 在 30 秒后过期
r.set('session:user:1', 'data', ex=30)

1.2 性能监控

🔍 使用 INFO 命令全面查看状态

1
2
redis-cli INFO memory
redis-cli INFO clients

Python 示例:

1
2
info = r.info()
print(info['used_memory_human']) # 当前使用内存

🔍 使用 MONITOR 实时查看请求

1
redis-cli MONITOR

适用于调试,但对性能有影响,不建议线上使用。


🐢 SLOWLOG 分析慢命令

1
redis-cli SLOWLOG get

Python 示例:

1
2
3
slowlogs = r.slowlog_get()
for log in slowlogs:
print(log)

📈 接入 Prometheus + Grafana(图表可视化)

  1. 安装 redis_exporter

  2. 启动 Redis Exporter:

    1
    ./redis_exporter -redis.addr=redis://localhost:6379
  3. 在 Prometheus 中添加 job:

    1
    2
    3
    - job_name: 'redis'
    static_configs:
    - targets: ['localhost:9121']
  4. 在 Grafana 中导入 Redis Dashboard 模板(ID:763)


1.3 容灾与高可用

💡 主从复制 + 哨兵模式

Redis 主从复制结构图:

1
2
3
4
5
6
7
8
       +---------+
| Master |
+---------+
/ \
/ \
+----------+ +----------+
| Replica1 | | Replica2 |
+----------+ +----------+

启用主从复制配置:

1
2
# slave.conf
replicaof 127.0.0.1 6379

哨兵配置示例:

1
2
3
4
5
# sentinel.conf
sentinel monitor mymaster 127.0.0.1 6379 2
sentinel down-after-milliseconds mymaster 5000
sentinel failover-timeout mymaster 10000
sentinel parallel-syncs mymaster 1

🧰 启动方式:

1
redis-sentinel sentinel.conf

❤️‍🔥 Keepalived + VIP 高可用部署(实战推荐)

  • Redis Master 设置虚拟 IP (VIP)
  • Keepalived 监控主节点
  • 主挂时自动切换到副本,并绑定 VIP

附加:多活容灾架构探索

Redis 原生不支持多活,但企业可结合一致性哈希、Kafka + Redis 消费模型等方式,实现弱一致性下的多机热备。


✅ 总结

模块 工具与命令 实战技巧
内存优化 maxmemory, maxmemory-policy 设置 LRU、合理设置 TTL
性能监控 info, monitor, slowlog 接入 Prometheus,搭配 Grafana
高可用 主从、哨兵、keepalived 故障切换、VIP 自动恢复

Redis 监控与调优
https://dreamshao.github.io/2025/07/17/redis监控与调优/
作者
Yun Shao
发布于
2025年7月17日
许可协议