MST

星途 面试题库

面试题:Redis慢查询日志阅览条件筛选的基本实现

在Redis中,假设慢查询日志已开启,现在需要筛选出执行时间大于100微秒且命令为SET的慢查询记录,简述实现思路并给出大致代码示例(语言不限)。
37.3万 热度难度
数据库Redis

知识考点

AI 面试

面试题答案

一键面试

实现思路

  1. 读取Redis慢查询日志文件。不同操作系统和Redis配置下,日志文件位置可能不同,一般在Redis配置文件中通过 slowlog-log-file 配置。
  2. 逐行解析日志内容,日志每行格式大致为 [编号] [时间戳] [执行时间(微秒)] [命令及参数]
  3. 针对每一行日志,提取执行时间和命令部分,判断执行时间是否大于100微秒且命令是否为SET。
  4. 符合条件的记录输出或存储以便后续分析。

代码示例(Python)

import os

slowlog_file_path = '/path/to/redis_slowlog.log'  # 根据实际情况修改

with open(slowlog_file_path, 'r') as f:
    for line in f.readlines():
        parts = line.split(' ')
        execution_time = int(parts[2])
        command = parts[3]
        if execution_time > 100 and command == 'SET':
            print(line.strip())