До основного вмісту

Міграція даних Redis: перенесення через RDB, AOF, replicaof

Міграція · 29.09.2026

Коли переносити Redis і як обрати спосіб

Redis переносять при зміні хостингу, апгрейді сервера або переході з shared-тарифу на VDS. Вибір способу залежить від того, чи можна зупинити застосунок на кілька хвилин і скільки даних зберігається в базі.

Є три робочі варіанти: знімок RDB, журнал AOF і жива реплікація через replicaof. Для бази до 1 ГБ підходить RDB-знімок. Для баз із суворішими вимогами до збереження кожного запису використовують AOF. Якщо простій неприпустимий — переносять через реплікацію.

Перенесення через RDB-знімок

RDB — це бінарний дамп усієї бази в один файл dump.rdb. Спосіб підходить, якщо можна зупинити запис на 1-2 хвилини.

На старому сервері примусово зберігаємо знімок і копіюємо файл:

redis-cli -h 127.0.0.1 -p 6379 SAVE
scp /var/lib/redis/dump.rdb root@newserver:/var/lib/redis/dump.rdb

На новому сервері Redis має бути зупинений на момент копіювання файлу, інакше процес перезапише його власним знімком під час наступного збереження. Шлях до файлу задається директивами dir і dbfilename у redis.conf.

Перенесення через AOF-журнал

AOF записує кожну команду зміни даних у файл appendonly.aof. При перенесенні через AOF втрачається менше даних, ніж при RDB, бо журнал можна синхронізувати з диском щосекунди.

Увімкніть AOF на старому сервері заздалегідь, дочекайтесь ротації і перенесіть каталог із даними:

redis-cli CONFIG SET appendonly yes
redis-cli BGREWRITEAOF
rsync -avz /var/lib/redis/appendonlydir/ root@newserver:/var/lib/redis/appendonlydir/

Після копіювання в redis.conf на новому сервері вкажіть appendonly yes і запустіть службу — Redis відновить стан, програвши журнал.

Жива міграція через replicaof

Команда replicaof (у старих версіях — slaveof) перетворює новий сервер на репліку старого. Дані копіюються автоматично, без зупинки застосунку.

redis-cli -h newserver -p 6379 REPLICAOF oldserver 6379
redis-cli -h newserver -p 6379 INFO replication

Дочекайтесь рядка master_link_status:up і збігу master_repl_offset на обох сторонах. Після цього перемкніть застосунок на нову адресу і вимкніть реплікацію командою REPLICAOF NO ONE.

Особливості перенесення Redis Cluster

У кластерному режимі не можна просто скопіювати один dump.rdb — дані розбиті на 16384 хеш-слоти між вузлами. Додавайте нові вузли в кластер командою redis-cli --cluster add-node, а потім перерозподіляйте слоти через redis-cli --cluster reshard.

ПараметрRDBAOFreplicaof
Простій1-2 хвилини1-2 хвилиниnear-zero
Ризик втрати данихсереднійнизькиймінімальний
Підходить для кластеранінітак

Перевірка даних після перенесення

Порівняйте кількість ключів і контрольні значення на обох серверах:

redis-cli -h oldserver DBSIZE
redis-cli -h newserver DBSIZE
redis-cli -h newserver INFO keyspace

Перевірте TTL у ключів з терміном дії — при перенесенні через RDB і AOF відносний час життя ключа зберігається коректно. Повний порядок дій для фінальної звірки сайту описано в чек-листі перевірки після міграції.

Підсумок: чек-лист міграції Redis

  • Визначте допустимий час простою і оберіть RDB, AOF або replicaof.
  • Зафіксуйте версію Redis — міграція між 6.x і 7.x проходить без проблем, але можливості перевірте заздалегідь.
  • Перенесіть файл конфігурації redis.conf окремо, не покладаючись на значення за замовчуванням.
  • Звірте DBSIZE і ключові лічильники на старому і новому сервері.
  • Оновіть адресу підключення в застосунку і знімайте старий сервер із навантаження лише після перевірки.

Якщо поруч із Redis переноситься ще й база MySQL або документна база на кшталт MongoDB, плануйте вікно міграції за найповільнішим компонентом.

← Назад до бази знань Поставити питання підтримці