面试题答案
一键面试实现思路
通过逐行读取慢查询日志文件,解析每行日志中的命令和耗时信息,利用数据结构(如字典)来存储不同命令的慢查询次数和总耗时,进而计算平均耗时。
主要步骤
- 读取日志文件:使用编程语言(如Python的
open()
函数)逐行读取Redis慢查询日志文件。 - 解析日志行:对每行日志进行解析,提取命令和耗时信息。以Redis慢查询日志格式
# Slowlog len:1000
,1517715727.260800 500000 127.0.0.1:39552 "SET" "test" "value"
为例,可通过字符串分割等方式获取SET
命令和500000
(微秒)耗时。 - 统计信息:使用字典数据结构,以命令为键,值为包含慢查询次数和总耗时的列表。如遇到
SET
命令,若字典中已有SET
键,则对应列表的慢查询次数加1,总耗时加上当前耗时;若没有,则初始化该键值对。 - 计算平均耗时:遍历字典,对于每个命令,用总耗时除以慢查询次数,得到平均耗时。
- 输出结果:将统计分析结果,如不同命令的慢查询次数、平均耗时等,以合适的格式输出展示。