当前位置:首页 > 问答 > 正文

Redis监控 操作日志:深入探索查看Redis操作记录,查redis操作记录

Redis监控 | 操作日志:手把手教你追踪Redis操作记录

2025年8月最新动态
Redis Labs在官方社区透露,将在下一版本中强化操作日志的细粒度查询功能,支持按时间范围、客户端IP等多维度过滤记录,这一更新对运维人员排查问题更加友好,预计年底正式发布。


为什么需要查看Redis操作记录?

Redis作为高性能内存数据库,日常可能遇到以下问题:

  • 数据被误删:手滑执行了FLUSHDB怎么办?
  • 性能突降:某个大Key被频繁访问却找不到“凶手”?
  • 安全审计:怀疑未授权客户端执行了危险命令?

这时候,操作日志(Operation Log)就是你的“破案工具”!


Redis操作记录的3种查看方式

方法1:MONITOR命令(实时监控)

在Redis客户端直接执行:

Redis监控 操作日志:深入探索查看Redis操作记录,查redis操作记录

0.0.1:6379> MONITOR

输出示例

123456 [0 192.168.1.100:54123] "SET" "user:101" "Alice"
1654321000.456789 [0 192.168.1.101:54234] "GET" "user:101"

优点:实时性强,适合调试。
缺点高性能损耗(官方警告生产环境慎用),且退出后历史记录丢失。

方法2:慢查询日志(Slow Log)

记录执行时间超过阈值的命令(默认10毫秒):

# 查看当前配置
127.0.0.1:6379> CONFIG GET slowlog-log-slower-than
127.0.0.1:6379> CONFIG GET slowlog-max-len
# 修改为记录超过5毫秒的命令,保留1000条
127.0.0.1:6379> CONFIG SET slowlog-log-slower-than 5000
127.0.0.1:6379> CONFIG SET slowlog-max-len 1000
# 查看日志
127.0.0.1:6379> SLOWLOG GET 5  # 获取最近5条

适用场景:定位性能瓶颈,但无法覆盖所有操作。

方法3:AOF持久化文件(终极回溯)

如果开启了AOF(Append-Only File),所有写操作会被记录到文件(如appendonly.aof):

Redis监控 操作日志:深入探索查看Redis操作记录,查redis操作记录

# 查看AOF配置
127.0.0.1:6379> CONFIG GET appendonly
# 解析AOF文件(需停机)
redis-check-aof --fix appendonly.aof
cat appendonly.aof | grep "SET user:101"

优点:完整记录所有写操作。
缺点:需手动解析,且默认配置可能每秒同步一次(丢失部分记录)。


生产环境最佳实践

  1. 慎用MONITOR:仅临时调试使用,用完立刻关闭。
  2. 结合审计工具:如开源工具redis-audit,可分析命令频率、客户端来源。
  3. 定期备份AOF:配合日志分析工具(如ELK)实现长期审计。

常见问题解答

*Q:能记录谁执行了`KEYS 吗?** A:可以!通过MONITOR或AOF都能捕获,但更推荐用redis-audit`统计高危命令。

Q:操作记录会占满内存吗?
A:慢查询日志受slowlog-max-len限制,AOF文件可配置自动重写(BGREWRITEAOF)。

Q:如何追踪非当前连接的客户端?
A:使用CLIENT LIST查看所有连接,再结合日志中的客户端IP/端口筛选。

发表评论