LEN 与 RESET 怎么配合
SLOWLOG 的维护类子命令有两个:SLOWLOG LEN 返回当前保留的条目数,用来判断缓冲区是否接近上限;SLOWLOG RESET 清空全部条目,不可恢复。做变更前后对比时,先在窗口开始前 RESET,抓到的样本就只属于目标窗口,比较起来更干净;代价是清掉的是证据,执行前要先把已有内容导出。两个动作通常成对出现:先看 LEN 判断缓冲压力,再决定是否开新窗口。
基本信息
| SLOWLOG LEN | 返回当前保留的条目数 |
|---|---|
| SLOWLOG RESET | 清空全部条目,不可恢复 |
| 典型用法 | 变更或修复前后做对比采样 |
| 相关配置 | slowlog-max-len 决定保留上限 |
| 使用前提 | 清空之前先导出已有内容 |
| 采样窗口 | 按变更窗口设定,前后保持一致 |
典型使用场景
- 变更验证:清理后开新窗口,看新条目是否消失
- 容量判断:LEN 长期贴近上限说明条目正在被覆盖
- 发布前后对比:两次采样窗口一致,结论才可比
- 排障准备:先导出再清理,避免丢失现场证据
- 共享实例协调:多人共用同一实例时,清理前知会相关方
- 窗口时长记录:把 RESET 与下次读取的时间点写进变更单,样本跨度才可解释
- 结果验证:清理并优化后对比新窗口的条目数与耗时分布
标准动作顺序
标准动作顺序
redis-cli SLOWLOG LEN # 当前条数,与上限对照
redis-cli SLOWLOG GET 128 > slowlog_before.log # 先导出再清理
redis-cli SLOWLOG RESET # 开新的采样窗口
redis-cli SLOWLOG LEN # 确认已归零
redis-cli CONFIG GET slowlog-max-len # 对照保留上限子命令对照
| 子命令 | 作用 | 风险 |
|---|---|---|
| SLOWLOG LEN | 读取当前条数 | 无 |
| SLOWLOG RESET | 清空全部条目 | 现场证据丢失且不可恢复 |
| SLOWLOG GET | 读取条目明细 | 输出可能含敏感参数 |
| CONFIG GET slowlog-max-len | 读保留上限 | 调整参数需评估内存占用 |
抓取前的 RESET 能让样本只包含目标窗口,对比更干净;配合固定的采集窗口与负载条件,结论才站得住。
在多团队共享的实例上随意 RESET 会影响他人排查:清掉的是公共证据,执行前先导出并知会相关方。