Site icon 8HOST.COM

Устранение неполадок в Redis

Redis – это открытое in-memory хранилище данных типа «ключ-значение». Оно поставляется с несколькими командами для устранения неполадок и багов.

Поскольку Redis является in-memory хранилищем, многие эти команды сосредоточены на управлении памятью, но есть и другие, которые позволяют получить информацию о состоянии вашего сервера Redis. В этом мануале вы узнаете, как использовать некоторые из этих команд для диагностики и устранения проблем, с которыми вы можете столкнуться при работе с Redis.

Как работать с этим мануалом

Это руководство задумано как шпаргалка с примерами. Его не нужно выполнять последовательно – вы можете просто перейти к любому разделу, который имеет отношение к нужной вам задаче.

Команды, использованные в этом мануале, были протестированы на сервере Ubuntu 18.04 и экземпляре Redis версии 4.0.9. Чтобы настроить аналогичную среду, вы можете следовать разделу 1 руководства Установка и защита Redis в Ubuntu 18.04. Мы покажем, как эти ведут себя команды в redis-cli, интерфейсе командной строки Redis. Обратите внимание, что если вы используете другой интерфейс Redis – например, Redli – то вывод некоторых команд будет отличаться.

Устранение ошибок, связанных с памятью

Команда memory usage говорит, сколько памяти в настоящее время используется одним ключом. Она принимает имя ключа в качестве аргумента и выводит количество байтов, которые он использует:

memory usage key_meaningOfLife
(integer) 42

Для более общей картины использования памяти сервером Redis вы можете выполнить команду memory stats:

memory stats

Эта команда выводит массив связанных с памятью метрик и их значений. Ниже приведены показатели, которые выводит команда memory stats:

Команда memory malloc-stats предоставляет внутренний статистический отчет от jemalloc, распределителя памяти Redis в системах Linux:

memory malloc-stats

Если кажется, что ваши проблемы связаны с памятью, но анализ выходных данных предыдущих команд ничего полезного не говорит, вы можете попробовать запустить команду memory doctor:

memory doctor

Эта функция выводит все проблемы, связанные с использованием памяти, которые она может найти, и предлагает возможные решения.

Сбор общей информации об экземпляре Redis

Команда monitor – это команда отладки, которая не связана напрямую с управлением памятью. Она позволяет посмотреть на постоянный поток каждой команды, обрабатываемой сервером Redis:

monitor
OK
1566157213.896437 [0 127.0.0.1:47740] "auth" "foobared"
1566157215.870306 [0 127.0.0.1:47740] "set" "key_1" "878"

Еще одна полезная для отладки команда – это info, она возвращает несколько блоков информации и статистики о сервере:

info
# Server
redis_version:4.0.9
redis_git_sha1:00000000
redis_git_dirty:0
redis_build_id:9435c3c2879311f3
redis_mode:standalone
os:Linux 4.15.0-52-generic x86_64
. . .

Эта команда возвращает много данных. Если вы хотите увидеть только один конкретный блок, вы можете указать его в качестве аргумента команды info:

info CPU
# CPU
used_cpu_sys:173.16
used_cpu_user:70.89
used_cpu_sys_children:0.01
used_cpu_user_children:0.04

Обратите внимание: вывод команды info будет зависеть от того, какую версию Redis вы используете.

Использование команд keys

Команда keys полезна в тех случаях, когда вы забыли название ключа или, возможно, создали его, но случайно ошиблись в названии ключа. Команда keys ищет ключи, которые соответствуют шаблону:

keys pattern

Команда поддерживает следующие глобальные переменные:

Важно! Документация Redis рекомендует использовать команду keys в производственной среде только в исключительных случаях, так как она может оказать существенное негативное влияние на производительность.

Заключение

В этом мануале мы подробно описали ряд команд для устранения неполадок и проблем, с которыми можно столкнуться при работе с Redis. Читайте другие мануалы по Redis в нашем Информатории.