Spec-Zone.ru › Redis

MONITOR

MONITOR
Синтаксис
MONITOR
Доступно с версии:
1.0.0
Сложность по времени:
Категории ACL:
@admin, @slow, @dangerous,

Команда MONITOR — это команда отладки, которая передает в потоке все команды, обработанные сервером Redis. Она помогает понять, что происходит с базой данных. Эту команду можно использовать как через redis-cli, так и через telnet.

Возможность видеть все запросы, обработанные сервером, полезна для обнаружения ошибок в приложении, как при использовании Redis в качестве базы данных, так и в качестве распределённой системы кэширования.

$ 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] "eval" "return redis.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), чтобы остановить поток MONITOR команды, запущенной через redis-cli.

$ 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.

Чтобы остановить поток MONITOR команды, запущенной через telnet, вручную выполните команды QUIT или RESET.

Команды, не регистрируемые MONITOR

По соображениям безопасности, административные команды не регистрируются в выводе MONITOR, а чувствительные данные замаскированы в команде AUTH.

Кроме того, команда QUIT также не регистрируется.

Стоимость запуска MONITOR

Поскольку MONITOR передает все команды, её использование сопряжено с затратами. Следующие (совершенно ненаучные) эталонные данные иллюстрируют, какими могут быть затраты при запуске MONITOR.

Результат эталонного измерения без запуска MONITOR:

$ 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 (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 клиентов ещё больше снизит пропускную способность.

Возвращаемое значение

Нестандартное возвращаемое значение, просто выводит полученные команды в бесконечном потоке.

История изменений поведения

  • >= 6.0.0: Команда AUTH исключена из вывода команды.
  • >= 6.2.0: Команда "RESET" может быть вызвана для выхода из режима MONITOR.
  • >= 6.2.4: Команды "AUTH", HELLO", EVAL", EVAL_RO", EVALSHA" и EVALSHA_RO" включены в вывод команды.

© 2006–2022 Salvatore Sanfilippo
Licensed under the Creative Commons Attribution-ShareAlike License 4.0.
https://redis.io/commands/monitor/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API