- 用法
-
MONITOR
- 始于
- 1.0.0
- ACL 类别
- @admin, @dangerous, @slow
AUTH
已从命令输出中排除。- 可以调用
RESET
退出监控模式。 AUTH
、HELLO
、EVAL
、EVAL_RO
、EVALSHA
和EVALSHA_RO
已包含在命令输出中。
MONITOR
是一个调试命令,它会实时返回 Valkey 服务器处理的每个命令。这有助于了解数据库中正在发生的事情。此命令可以通过 valkey-cli
和 telnet
使用。
查看服务器处理的所有请求的能力,在使用 Valkey 作为数据库和分布式缓存系统时,对于发现应用程序中的错误都非常有用。
$ valkey-cli monitor
1339518083.107412 [0 127.0.0.1:60866] "keys" "*"
1339518087.877697 [0 127.0.0.1:60866] "dbsize"
1339518090.420270 [0 127.0.0.1:60866] "set" "x" "6"
1339518096.506257 [0 127.0.0.1:60866] "get" "x"
1339518099.363765 [0 127.0.0.1:60866] "eval" "return server.call('set','x','7')" "0"
1339518100.363799 [0 lua] "set" "x" "7"
1339518100.544926 [0 127.0.0.1:60866] "del" "x"
使用 SIGINT
(Ctrl-C) 停止通过 valkey-cli
运行的 MONITOR
流。
$ telnet localhost 6379
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
MONITOR
+OK
+1339518083.107412 [0 127.0.0.1:60866] "keys" "*"
+1339518087.877697 [0 127.0.0.1:60866] "dbsize"
+1339518090.420270 [0 127.0.0.1:60866] "set" "x" "6"
+1339518096.506257 [0 127.0.0.1:60866] "get" "x"
+1339518099.363765 [0 127.0.0.1:60866] "del" "x"
+1339518100.544926 [0 127.0.0.1:60866] "get" "x"
QUIT
+OK
Connection closed by foreign host.
手动执行 QUIT
或 RESET
命令以停止通过 telnet
运行的 MONITOR
流。
MONITOR 不记录的命令
出于安全考虑,MONITOR
的输出不记录任何管理命令,并且 AUTH
命令中的敏感数据会被匿名化处理。
此外,命令 QUIT
也不会被记录。
运行 MONITOR 的开销
因为 MONITOR
会回传所有命令,所以它的使用会带来一定的开销。以下(完全不科学的)基准测试数据说明了运行 MONITOR
可能产生的开销。
未运行 MONITOR
时的基准测试结果
$ src/valkey-benchmark -c 10 -n 100000 -q
PING_INLINE: 101936.80 requests per second
PING_BULK: 102880.66 requests per second
SET: 95419.85 requests per second
GET: 104275.29 requests per second
INCR: 93283.58 requests per second
运行 MONITOR
时的基准测试结果 (valkey-cli monitor > /dev/null
)
$ src/valkey-benchmark -c 10 -n 100000 -q
PING_INLINE: 58479.53 requests per second
PING_BULK: 59136.61 requests per second
SET: 41823.50 requests per second
GET: 45330.91 requests per second
INCR: 41771.09 requests per second
在此特定情况下,运行单个 MONITOR
客户端可以将吞吐量降低 50% 以上。运行更多 MONITOR
客户端会进一步降低吞吐量。
请注意,
RESP2/RESP3 回复
非标准返回值。以无限流的形式倾倒(输出)接收到的命令。