Практическое задание

Эта задача — шаг 10 курса «Redis в проде»

Реплика Redis на втором порту

средне~12 мин

На порту 6379 работает основной Redis с данными заказов. Подними рядом реплику:

  • второй экземпляр redis-server на порту 6380, работающий в фоне (демоном);
  • каталог данных — /var/lib/redis-6380;
  • он реплицирует 127.0.0.1:6379 и получает все его данные;
  • реплика только для чтения — запись в неё должна отклоняться.

Основной экземпляр не перезапускай и не меняй.

Что потренируешь:
  • redis
  • репликация
  • replicaof
  • INFO replication
  • read-only реплика

Разбор темы

Репликация в Redis асинхронная, по схеме «мастер → реплики». Реплика подключается к мастеру (replicaof), получает полный снимок данных (full sync через RDB, в том числе diskless — прямо в сокет), а дальше — поток всех изменяющих команд. Реплики разгружают мастер на чтении и служат горячим резервом: при аварии одну из них можно сделать мастером (вручную или через Sentinel). По умолчанию реплика доступна только для чтения (replica-read-only yes), иначе случайные записи в неё разошлись бы с мастером. Состояние связи показывает INFO replication: role:slave, master_link_status:up и смещения master_repl_offset.

Что проверяется

  1. экземпляр на 6380 запущен с каталогом /var/lib/redis-6380
  2. 6380 — реплика 127.0.0.1:6379, связь up
  3. на реплике все данные мастера
  4. новая запись в 6379 появляется на 6380
  5. реплика только для чтения
  6. мастер 6379 видит реплику

Как это выглядит