必须先配置日志文件路径和级别(如logfile "/var/log/redis/redis-server.log"、loglevel notice),确保目录存在且权限正确,重启redis后,再用tail -f实时监听日志文件,或用redis-cli slowlog get查看慢查询、redis-cli monitor抓取全量指令流(仅限调试)。

要实时看到Redis服务器正在执行什么操作、连接了哪些客户端、有没有报错,必须先让Redis把日志写进文件,再用命令持续监听这个文件的变化。
配置Redis日志文件路径和级别
打开redis.conf配置文件,找到logfile和loglevel两行;如果没有,就手动添加:
logfile "/var/log/redis/redis-server.log"
loglevel notice
【必须确保/var/log/redis/目录存在且Redis进程有写入权限】。如果目录不存在,运行sudo mkdir -p /var/log/redis && sudo chown redis:redis /var/log/redis;否则启动后日志会静默丢失。
notice级别能记录启动、关闭、客户端连接、关键错误等信息,够用又不会产生海量日志。别设成debug——它会让每条命令都记一遍,几秒就能撑爆磁盘。
重启Redis使日志配置生效
用systemctl重启服务:sudo systemctl restart redis
检查是否成功:sudo systemctl is-active redis → 返回active才说明已按新配置运行。
如果重启失败,大概率是logfile路径不可写或配置语法出错,立刻查sudo journalctl -u redis -n 20看报错详情。
实时监控日志文件输出
方法一:用tail -f直接盯住日志流
执行tail -f /var/log/redis/redis-server.log
Redis 缓存和数据结构管理技能。通过自然语言操作 Redis,支持 String、Hash、List、Set、ZSet、Stream 等数据结构操作。当用户提到 Redis、缓存、消息队列、会话存储时使用此技能。
方法二:带关键词过滤(比如只看错误)
执行tail -f /var/log/redis/redis-server.log | grep "\[error\]"
方法三:用less + F组合键(先进入less /var/log/redis/redis-server.log,再按Shift+F)→ 效果等同tail -f,但支持中途按Ctrl+C退出后回滚翻页。
只要Redis在运行,这三条命令任意一条都能让你眼睛不离屏幕地看到新日志实时刷出来。
查看最近的慢查询命令
第一步:确认慢查询阈值已设(单位微秒),例如10ms:
redis-cli config set slowlog-log-slower-than 10000
第二步:获取最近5条慢命令记录:
redis-cli slowlog get 5
输出里第3个字段是执行耗时(微秒),第4个字段是完整命令数组。注意:slowlog只存内存,重启就清空,不是持久化日志。
用MONITOR命令抓取全量实时指令流
方法一:直接连上就开监:
redis-cli monitor
方法二:限制只显示来自某IP的指令(需Redis 7.2+):
redis-cli --monitor --filter "192.168.1.100"
【此操作会严重拖慢Redis性能,单核CPU吞吐可能下降40%以上】。仅限本地调试,生产环境严禁长开,更不能加到脚本里自动执行。










