Как проверить, что Redis Master в порядке?
В документации они советуют команду монитора. Но он имеет 50% -ное снижение производительности для всей системы, и как мне это сделать? Просматривать выход с помощью SSH, пока я ничего не вижу?
Допустим, у меня есть 3 сервера: 1 с master-сервером redis, 1 с slave-сервером redis и один с моим веб-сайтом, запрашивающим master-сервер redis.
Как я могу с моего сервера веб-сайта очистить решение об отказе подчиненному, отправив SLAVEOF NO ONE
команда?
Моим первым шагом было бы поставить какую-то проверку тайм-аута с помощью простого пинга, просто чтобы убедиться, что сервер подключен к сети. Но для редиса я понятия не имею.
1 ответ
Вы можете подключиться с проверяющего узла с помощью API redis и отправить команду redis под названием "ping".
Это скажет вам, если он отвечает. Однако вы также хотели бы быть уверены, что разговариваете с мастером, поэтому я бы порекомендовал запустить команду info для получения этой информации. Если они оба терпят неудачу, тогда узел отключен.
Однако я бы также посоветовал вам не всегда предполагать, что один и тот же узел является мастером при каждой попытке подключения. Используя информацию из обоих источников, вы можете быть более уверенными в общении с мастером, когда захотите.
Частично это означает, что нужно быть готовым к тому, чтобы увидеть, кто на подъеме, а кто нет.
Или, в зависимости от вашего использования, вы можете рассмотреть twemproxy прекрасными людьми в твиттере. Или программный балансировщик нагрузки, такой как баланс.