Что важно учитывать при работе с Redis в production?
- Какие ошибки допускают с Redis в проде?
Команды выполняются в одном потоке — одна долгая команда тормозит всех. Отсюда: нельзя KEYS * (есть SCAN), осторожно с большими структурами, TTL на кэш-ключи и maxmemory с политикой вытеснения.
- Большие ключи удалять через UNLINK
- Долговечность ограничена: RDB-снимки и AOF раз в секунду, асинхронные реплики
- Пул соединений, таймауты, pipelining
А ещё Redis — не основная база для данных, которые нельзя потерять
Подробно
Последовательное выполнение делает операции атомарными без блокировок, но превращает любую долгую команду в остановку для всех — отсюда правило избегать операций, линейных по размеру набора данных. Управление памятью задаётся политикой: noeviction приведёт к ошибкам записи при заполнении, allkeys-lru вытеснит давно не используемые ключи. Про долговечность стоит говорить честно: снимки состояния теряют последние изменения, журнал команд надёжнее, но полной гарантии всё равно нет — Redis отлично подходит для кэша, счётчиков и очередей, но не как единственное хранилище критичных данных.
Что хотят услышать
- Однопоточность и опасные команды.
- TTL, maxmemory, политика вытеснения.
- Ограниченная долговечность.
Частые ошибки
- Выполнять KEYS или FLUSHALL на боевом инстансе.
- Класть ключи без TTL и удивляться исчерпанию памяти.
Проверьте себя
Несколько верных вариантов. Подумайте, потом откройте ответ.
Показать варианты и ответ
- ✓Команды выполняются по очереди: одна тяжёлая операция блокирует всех
- ✓KEYS сканирует всё пространство ключей — в бою используют SCAN
- ✓Нужны TTL и политика вытеснения, иначе кончится память
- ✗Redis с включённым AOF гарантирует сохранность данных так же, как реляционная СУБД
Что спросят дальше
- Чем снимок отличается от журнала команд по гарантиям?
- Как выбрать политику вытеснения?
Разбор темы
- Redis и кэширование
Cache-aside и стратегии записи, TTL и eviction, защита от stampede и аккуратные распределённые блокировки.
Связанные вопросы
Разбор собеседования с sotto
После собеседования sotto разбирает разговор: оценка, каждый вопрос — хорошо, частично или слабо, чего не хватило в ответе и над чем поработать к следующему разу. Первые 30 минут бесплатно.