通过执行MONITOR命令,客户端可以将自己变成一个监视器,实时接收并打印出服务器正在处理的命令请求的相关信息。

24.1 成为监视器

1
2
3
4
5
6
7
8
9
def MONITOR():
# 打开客户端的监视器标识
client.flags != REDIS_MONITOR

# 将客户端添加到服务器状态的monitors链表的末尾
server.monitors.append(client)

# 向客户端返回OK
send+reply("OK")

24.2 向监视器发送命令信息

服务器每次处理命令请求前,会调用replicationFeedMonitors函数,由它将被处理的命令的请求的相关信息发送给各个监视器。

1
2
3
4
5
6
7
8
def replicationFeedMonitors(client, monitors, dbid, argv, argc):

# 创建要发送的消息
msg = create_msg(client, dbid, argv, argc)

# 遍历所有监视器
for monitor in monitors:
send_msg(monitor, msg)

导航

目录

上一章:23. 慢查询日志

End