Несколько фактов про Redis #painisinstructional

  1. Пустая строка — валидный ключ в редисе.
    redis.rpoplpush(list, processingList) когда processlingList — пустая строка успешно складывает данные в него.
  2. Имеем 3 сервера с автопереключением через Redis Sentinel. Из-за ошибки из пункта 1 на мастере переполняется память, но не слишком быстро — в итоге до падения по OOM не доходит, но памяти перестает хватать на bgsave. Мастер перестает обрабатывать запросы, т.к. отвалились слейвы и он не может сделать bgsave. Слейвы отваливаются, т.к. мастер не может сделать bgsave, но при этом считают его живым и не осуществляют переключение на себя.
    Единственный выход — вручную убить мастер, предварительно добавив памяти слейвам и исправив ошибку из п.1, чтобы все не началось заново.

Добавить комментарий