Как я могу перезапустить сервер Redis, если он автоматически отключается с помощью сценария?

Redis имеет конфигурацию главного подчиненного устройства. Если мастер выходит из строя, подчиненный становится новым мастером. Как я могу перезапустить предыдущий мастер Redis (в качестве подчиненного устройства нового мастера или если он снова станет главным, это нормально) с помощью сценария. Я не хочу сделать это вручную.


person Manoj    schedule 21.06.2017    source источник
comment
Покажи нам, что ты сделал?   -  person kk.    schedule 21.06.2017
comment
@KrishnaKuntala, мой мастер работает на порте 6379, а мой подчиненный - на 6380 и 6381. И с помощью sentinel.conf я решаю, какой будущий мастер выйдет из строя.   -  person Manoj    schedule 21.06.2017
comment
@KrishnaKuntala с использованием redis-cli -p 6379 DEBUG sleep 30 Я убиваю своего хозяина, и подчиненный становится главным. Но предыдущий мастер не является ни подчиненным, ни главным, поэтому я хочу перезапустить его. Я сделал это вручную, но могу ли я написать для этого любой скрипт   -  person Manoj    schedule 21.06.2017


Ответы (3)


Это можно сделать с помощью небольшого скрипта. Создайте скрипт-наблюдатель, который продолжает пинговать REDIS на порт 6379 и в случае сбоя. Просто перезапустите сервер с помощью команды redis-server.

#!/bin/bash
a=$(redis-cli -p 6379 PING)
if [ "$a" = "PONG" ]
then
    echo 'Already running'
else
    b=$(/etc/init.d/redis_6379 start)   
    echo $b
fi

Теперь запланируйте этот скрипт в crontab на каждую минуту.

person Aditya Chowdhry    schedule 07.07.2017

OK. Мне пришлось учиться после катастрофического сбоя сервера, вызванного смертью Redis и тем, что он остался мертвым:

  1. Отредактируйте /etc/systemd/system/multi-user.target.wants/redis.service и добавьте это в раздел [Service] внизу:

    Restart = всегда RestartSec = 10 с

  2. Запустите sudo systemctl daemon-reload

  3. Запустите sudo systemctl restart redis

Теперь он будет перезапускаться через 10 секунд каждый раз при сбое.

Обычно этого достаточно для Redis.

person Theodore R. Smith    schedule 21.10.2020

person    schedule
comment
Не могли бы вы добавить поясняющий текст к своему сообщению - person nbk; 03.11.2019
comment
Предоставленный ответ был помечен для просмотра как сообщение низкого качества. Вот несколько рекомендаций для Как написать хороший ответ?. Этот предоставленный ответ может быть правильным, но для него может быть полезно объяснение. Ответы только на код не считаются хорошими ответами. Из обзора. - person Trenton McKinney; 04.11.2019