Redis 设计与实现(第二版)第四部分:独立功能的实现慢查询日志慢查询日志的阅览和删除
慢查询日志的阅览和删除
慢查询日志的阅览和删除
弄清楚了服务器状态的 slowlog
链表的作用之后, 我们可以用以下伪代码来定义查看日志的 SLOWLOG GET 命令:
def SLOWLOG_GET(number=None):
# 用户没有给定 number 参数
# 那么打印服务器包含的全部慢查询日志
if number is None:
number = SLOWLOG_LEN()
# 遍历服务器中的慢查询日志
for log in redisServer.slowlog:
if number <= 0:
# 打印的日志数量已经足够,跳出循环
break
else:
# 继续打印,将计数器的值减一
number -= 1
# 打印日志
printLog(log)
查看日志数量的 SLOWLOG LEN 命令可以用以下伪代码来定义:
def SLOWLOG_LEN():
# slowlog 链表的长度就是慢查询日志的条目数量
return len(redisServer.slowlog)
另外, 用于清除所有慢查询日志的 SLOWLOG RESET 命令可以用以下伪代码来定义:
def SLOWLOG_RESET():
# 遍历服务器中的所有慢查询日志
for log in redisServer.slowlog:
# 删除日志
deleteLog(log)