1. 使用Redis自带命令行工具
Redis自带的命令行工具是最基础的监控方式,无需额外安装软件,适合快速检查状态:
redis-cli ping:发送PING命令,若返回PONG则表示Redis服务器正常运行,是最基础的状态验证。redis-cli info:获取Redis服务器的详细状态信息,涵盖内存使用(used_memory)、连接数(connected_clients)、命令执行次数(total_commands_processed)、持久化状态(rdb_last_save_time)等多个维度。可通过info memory、info clients等子命令查看特定模块信息。redis-cli monitor:实时打印Redis服务器接收到的所有命令,适合调试和分析命令执行流程,但生产环境慎用(会产生大量日志,影响性能)。redis-cli slowlog:查看执行时间超过指定阈值(默认10毫秒)的慢查询命令,帮助定位性能瓶颈(如复杂Lua脚本、大key操作)。2. 利用系统工具监控资源使用
通过操作系统自带的工具,可监控Redis进程的CPU、内存、磁盘等资源占用情况,快速识别资源瓶颈:
top/htop:top命令显示系统中运行的进程及其CPU、内存占用;htop(需安装)提供更友好的交互界面,可按CPU/内存排序,快速定位Redis进程的资源消耗。vmstat:查看系统的虚拟内存统计信息(如页面交换次数si/so)、CPU使用率(us/sy)、进程状态等,判断系统是否存在内存不足或CPU过载问题。iostat:监控系统的磁盘I/O情况(如读写速率tps、读写量kB_read/s/kB_wrtn/s),识别Redis因磁盘IO瓶颈导致的性能下降。3. 第三方监控工具(推荐用于生产环境)
第三方工具提供实时监控、可视化、报警等高级功能,适合大规模Redis集群或需要长期运维的场景:
redis_exporter(Redis官方 Exporter)采集Redis的指标数据(如内存使用率、连接数、QPS);4. 自定义监控脚本
通过编写脚本(如Python、Shell),定期执行Redis命令并将结果存储到日志或监控系统,实现个性化监控:
redis-py库连接Redis,定期执行info命令获取关键指标(如连接数、内存使用),并输出到日志文件或发送到报警系统(如企业微信、钉钉)。示例如下:import redis
import time
def monitor_redis():
r = redis.Redis(host='localhost', port=6379, db=0)
while True:
info = r.info()
print(f"Connected Clients: {info['connected_clients']}")
print(f"Used Memory: {info['used_memory'] / 1024 / 1024:.2f} MB")
print(f"Uptime: {info['uptime_in_seconds']} seconds")
time.sleep(10) # 每10秒执行一次
if __name__ == "__main__":
monitor_redis()
redis-cli命令获取指标,结合awk、sed等工具处理结果,将关键指标写入日志文件,便于后续分析。5. 系统服务管理(Linux系统)
若Redis通过systemd管理(常见于CentOS、Ubuntu等系统),可通过以下命令监控服务状态:
systemctl status redis:查看Redis服务的运行状态(是否active)、最近的日志条目(如启动失败原因)。journalctl -u redis:查看Redis服务的详细日志(包括启动、关闭、错误信息),帮助诊断服务异常。