Короткая заметка по резервному копированию и восстановлению Redis.

Backup

Резервное копирование происходит так. Заходим в Redis CLI:

$ redis-cli

Если сервис Redis недоступен или остановлен, вы получите вот такой ответ:

Could not connect to Redis at 127.0.0.1:6379: Connection refused
not connected>

Если все хорошо, то строка приветствия измениться на:

127.0.0.1:6379>

Теперь следует авторизоваться, ведь ваш Redis закрыт аутентификацией, так?

127.0.0.1:6379> auth <redis_password>

Hint! Текущий пароль вы можете подглядеть в /etc/redis/redis.conf

Далее нам нужно уточнить, куда Redis пишет свои данные на диске:

127.0.0.1:6379> config get dir

Теперь мы готовы записать изменения на диск:

127.0.0.1:6379> save

Готовую копию вы найдете по пути, который вы узнали чуть ранее, в файле dump.rdb, например /var/lib/redis/dump.rdb.

Restore

Для восстановления, вам необходимо остановить Redis сервер, отключить создание снимков и AOF (подробнее в руководстве), если они включены. В зависимости от того, как запущен Redis, вы можете это сделать изменив конфигурационный файл:

# redis.conf
appendonly no # Отключаем AOF
# save 60 1000 # Комментируем строку настройки snapshot'ов

или строку запуска демона:

redis-server --appendonly no

Теперь вам нужно положить файл резервной копии в директорию данных Redis и запустить сервис. Проверить, что данные подтянулись, вы можете, например, командой:

127.0.0.1:6379> scan -1

Вы должны получить последнюю запись из кэша.

Если вы хотите включить AOF обратно, вам нужно сказать Redis записать AOF-файл:

127.0.0.1:6379> BGREWRITEAOF

Статус вы можете найти в секции persistence, выполнив команду:

127.0.0.1:6379> INFO

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