volatile-lru вытесняет редко используемые ключи только среди имеющих TTL, allkeys-lru — среди всех ключей, а noeviction не вытесняет данные и отклоняет записи при нехватке памяти.
Опишите разницу между стратегиями вытеснения данных в Redis: volatile-lru, allkeys-lru и noeviction.
volatile-lru вытесняет редко используемые ключи только среди имеющих TTL, allkeys-lru — среди всех ключей, а noeviction не вытесняет данные и отклоняет записи при нехватке памяти.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
volatile-lru вытесняет редко используемые ключи только среди имеющих TTL, allkeys-lru — среди всех ключей, а noeviction не вытесняет данные и отклоняет записи при нехватке памяти.
LRU в Redis приближённый, поэтому это не точный глобальный список всех обращений. Если при volatile-lru нет подходящих ключей с TTL, освободить память таким способом не получится. noeviction не означает остановку всех команд: чтение и освобождение памяти остаются возможными, а ошибка затрагивает операции, требующие дополнительной памяти. Политику выбирают по роли Redis: потеря кешируемой копии отличается от потери единственного экземпляра важных данных. Нужны мониторинг памяти и обработка ошибок записи.