给日志加上时间刻度
开启时间戳注释后,追加日志里会按秒插入以井号开头的时间戳注释行,用离线检查工具查看或人工回溯时,可以对照命令大致发生在什么时间。它只是可读性上的增强:注释行在重放时会被忽略,不参与执行,因此不影响恢复结果,也不会改变数据内容。代价是文件体积会略微增加。
基本信息
| 配置项 | 时间戳注释开关,默认关闭 |
|---|---|
| 格式 | 以井号开头的注释行 |
| 写入频率 | 按秒插入 |
| 主要用途 | 审计与问题回溯时提供时间参照 |
| 对重放影响 | 无,注释在重放时被跳过 |
典型使用场景
- 回溯某次数据异常大致发生在什么时间点
- 审计场景需要提供写入操作的时间参照
- 把日志文件时间与业务日志对齐,还原事件顺序
- 排查恢复耗时分布,了解命令在时间轴上的分布
- 演练中验证注释行不会影响加载结果
开启与查看
开启与查看
redis-cli CONFIG GET aof-timestamp-enabled
redis-cli CONFIG SET aof-timestamp-enabled yes # 开启时间戳注释
redis-cli CONFIG REWRITE # 写回配置文件
grep -m 5 '^#' /data/redis/appendonlydir/*.incr.aof # 提取注释行
tail -20 /data/redis/appendonlydir/*.incr.aof # 结合命令一起看输出判读
| 观察项 | 含义 | 注意 |
|---|---|---|
| 注释行 | 命令接收时刻的近似时间 | 不是业务发生时间,仅有参照意义 |
| 命令行 | 实际被记录并重放的写命令 | 与注释交错出现属正常 |
| 文件体积 | 开启后会略有增加 | 低价值场景可以不开 |
| 版本差异 | 老版本没有该配置项 | 配置模板不同步会带来误判 |
时间戳记录的是服务端接收命令的近似时间,不是业务发生时间,两者在写入积压或客户端重试时会有明显差异。
开启会略增文件体积与写入内容,纯性能优先且没有回溯需求的实例可以保持关闭。