TOP云提供高性价比云服务器租用,有中国内地/港澳台、海外等全球各地节点,TOP云国内云服务器只要有域名备案号就能直接用,无须重复备案;港澳台及海外云服务器不用备案,购买之后直接使用,省时省力省心。价格实惠,续费同价,2核2G5M仅需27元每月,8核8G50M仅需66元每月,更多配置套餐请进入下面网址了解:
TOP云总站云服务器:https://topyun.vip/server/buy.html
TOP云C站云服务器:https://c.topyun.vip/cart
在云服务器上监控 Redis 的性能是保障其高可用性、稳定性与高效运行的关键。通过实时监控 Redis 的关键指标(如内存使用、QPS、延迟、连接数等),可以及时发现性能瓶颈、内存泄漏、慢查询等问题,从而快速响应和优化。
一、Redis 性能监控的核心指标
在监控 Redis 前,需要明确哪些指标是关键的。以下是 Redis 性能监控的核心指标分类:
类别 | 指标 | 说明 |
---|---|---|
资源使用 | 内存使用 (used_memory) | Redis 实际使用的内存量 |
内存碎片率 (mem_fragmentation_ratio) | 内存分配效率 | |
CPU 使用率 | Redis 进程的 CPU 占用 | |
网络流量 (total_connections_received, total_commands_processed) | 连接数与命令处理量 | |
性能指标 | 延迟 (latency) | 命令执行的延迟时间 |
QPS (Queries Per Second) | 每秒处理的请求数 | |
慢查询 (slowlog) | 执行时间超过阈值的命令 | |
连接与客户端 | 当前连接数 (connected_clients) | 活跃的客户端连接数 |
阻塞客户端 (blocked_clients) | 执行阻塞命令(如 BLPOP)的客户端数 | |
持久化与复制 | RDB/AOF 状态 | 持久化是否正常 |
主从同步延迟 (master_repl_offset) | 主从数据同步状态 |
二、监控 Redis 性能的方法
方法 1:使用 Redis 自带的 INFO 和 SLOWLOG 命令(基础方案)
Redis 提供了内置命令,可以实时查看性能相关数据。
(1)INFO 命令:获取所有监控指标
redis-cli INFO
或获取特定模块信息(如内存):
redis-cli INFO memory redis-cli INFO stats redis-cli INFO clients redis-cli INFO persistence
重点关注字段:
used_memory:Redis 实际使用的物理内存(单位:字节)
used_memory_rss:操作系统分配给 Redis 的物理内存
mem_fragmentation_ratio:内存碎片率(used_memory_rss / used_memory)
connected_clients:当前连接数
instantaneous_ops_per_sec:瞬时 QPS
total_commands_processed:总命令处理数
keyspace_hits / keyspace_misses:缓存命中率
rdb_last_bgsave_status:RDB 持久化状态
aof_last_bgrewrite_status:AOF 重写状态
定时采集:可以通过脚本定期执行 redis-cli INFO 并存储到日志或数据库中(如 Prometheus + Grafana)。
(2)SLOWLOG 命令:分析慢查询
慢查询是导致 Redis 性能下降的常见原因之一。
查看慢查询日志:
redis-cli SLOWLOG GET [数量]
# 示例:查看最近的 10 条慢查询
redis-cli SLOWLOG GET 10
输出示例:
1) 1) (integer) 14 # 日志 ID 2) (integer) 1620000000 # 时间戳 3) (integer) 15000 # 执行耗时(微秒) 4) 1) "KEYS" # 慢查询命令 2) "*" # 参数
设置慢查询阈值(默认 10 毫秒):
# 在 redis.conf 中配置
slowlog-log-slower-than 10000 # 单位:微秒(10000 微秒 = 10 毫秒)
# 动态设置(无需重启)
redis-cli CONFIG SET slowlog-log-slower-than 10000
建议:生产环境建议将阈值设置为 10000(10ms)或更低,定期分析慢查询并优化。
方法 2:使用 redis-cli --latency 测试延迟
Redis 提供了内置的延迟测试工具,可以测量客户端到 Redis 服务器的延迟。
(1)测试平均延迟:
redis-cli --latency -h 服务器IP -p 6379
示例输出:
min: 0, max: 10, avg: 1.2 (单位:毫秒)
(2)持续监控延迟(动态刷新):
redis-cli --latency-history -h 服务器IP -p 6379
用途:快速定位网络或 Redis 响应延迟问题。
方法 3:使用监控工具(生产环境推荐)
手动执行命令适合临时排查问题,但生产环境建议使用专业监控工具,实现自动化、可视化与告警。
(1)Prometheus + Grafana(开源方案)
Prometheus:定时拉取 Redis 指标(通过 redis_exporter)。
Grafana:可视化 Redis 指标,支持仪表盘与告警。
步骤:
在云服务器上部署 redis_exporter(Redis 指标采集器):
# 下载并运行 redis_exporter(以 Linux 为例)
wget https://github.com/oliver006/redis_exporter/releases/download/v1.40.0/redis_exporter-v1.40.0.linux-amd64.tar.gz
tar -xzf redis_exporter-v1.40.0.linux-amd64.tar.gz
cd redis_exporter-v1.40.0.linux-amd64
./redis_exporter --redis.addr=redis://localhost:6379
配置 Prometheus 采集 redis_exporter 的指标(修改 prometheus.yml):
scrape_configs:
- job_name: 'redis'
static_configs:
- targets: ['服务器IP:9121'] # redis_exporter 默认端口 9121
在 Grafana 中导入 Redis 仪表盘(ID:763 或 11831)。
优点:免费、灵活、可扩展,适合中小型集群。
(2)云服务商提供的监控工具(适合云数据库用户)
如果你使用的是云数据库 Redis(如阿里云 RDS for Redis、腾讯云 CRedis、AWS ElastiCache),通常云平台已内置监控功能:
阿里云:控制台 → Redis 实例 → 监控与报警
腾讯云:控制台 → Redis → 监控
AWS:CloudWatch → ElastiCache
优点:开箱即用,无需额外部署,支持自动告警。
(3)商业监控工具(适合企业级需求)
Datadog:支持 Redis 深度监控与告警。
New Relic:提供应用与数据库性能分析。
Zabbix:开源企业级监控系统,支持 Redis 插件。
三、优化建议:基于监控结果的行动
通过监控发现性能问题后,可针对性优化:
问题 | 可能原因 | 优化措施 |
---|---|---|
内存使用过高 | 大 Key、未设置 TTL、缓存堆积 | 使用 MEMORY USAGE 分析大 Key;设置过期时间;清理无用数据 |
QPS 过高 | 热点 Key、缓存击穿 | 使用分布式锁、热点数据分片、本地缓存 |
延迟升高 | 网络抖动、慢查询、CPU 瓶颈 | 优化慢查询;升级服务器配置;使用集群分担负载 |
连接数过多 | 客户端未复用连接 | 使用连接池;限制最大连接数(maxclients) |
持久化阻塞 | RDB/AOF 配置不合理 | 调整 save 规则;使用 appendfsync everysec |
四、总结:Redis 性能监控方案
方案 | 适用场景 | 优点 | 缺点 |
---|---|---|---|
INFO + SLOWLOG | 临时排查、开发测试 | 无需额外工具,快速获取指标 | 手动操作,无法长期存储与可视化 |
redis-cli --latency | 延迟测试 | 简单直接 | 无法监控其他指标 |
Prometheus + Grafana | 生产环境、开源方案 | 自动化、可视化、可扩展 | 需要部署与维护 |
云服务商监控 | 云数据库用户 | 开箱即用、集成告警 | 功能可能受限 |
商业工具 | 企业级需求 | 功能全面、专业支持 | 成本较高 |