Redis 基础教程

Redis 命令

Redis 高级教程

Redis 笔记

original icon
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.knowledgedict.com/tutorial/redis-command-monitor.html

Redis MONITOR 命令

Redis 服务器 Redis 服务器


Redis MONITOR 是一个调试命令,返回服务器处理的每一个命令,它能帮助我们了解在数据库上发生了什么操作,可以通过 redis-cli 和 telnet 命令使用。当使用 Redis 作为数据库和分布式缓存系统时,能够查看服务器处理的所有请求对于发现应用程序中的错误非常有用。

命令格式

MONITOR

可用版本:>=1.0.0

监控不到的命令

出于安全考虑,某些特殊管理命令,如 CONFIG 不会记录到 MONITOR 输出中。

MONITOR 性能消耗

由于 MONITOR 命令返回服务器处理的所有的命令,所以在性能上会有一些消耗。

在不运行 MONITOR 命令的情况下,benchmark 的测试结果:

$ src/redis-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 命令的情况下,benchmark 的测试结果:(redis-cli monitor > /dev/null):

$ src/redis-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 命令降低的吞吐量更多。

命令返回值

没有统一标准的返回值,无限的返回服务器端处理的命令流。

示例

$ redis-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] "del" "x"
1339518100.544926 [0 127.0.0.1:60866] "get" "x"

使用 SIGINT(Ctrl-C)来停止通过 redis-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 命令来停止通过 telnet 使用 MONITOR 返回的输出。

Redis OBJECT 命令允许从内部查看指定 key 的 Redis 对象信息。它通常用在调试,或者了解相关 key 是否使用特殊编码的 ...
SORT命令返回或保存指定列表、集合、有序集合key中经过排序的元素。 ...
Redis GET 命令返回指定 key 所关联的字符串值。如果指定的 key 不存在时,返回特殊值 nil。此外,如果指定的 key 存储 ...
TYPE 命令返回指定 key 所储存的值的类型。 ...
Redis COMMAND 命令用于返回所有的 Redis 命令的详细信息,并以数组形式展示。 ...