Что такое "Key Eviction" и как оно настраивается?
Вопрос проверяет знание механизма удаления ключей при превышении лимита памяти.
Короткий ответ
Key eviction — это механизм Redis для удаления ключей, когда установленный лимит памяти превышен. Политики высвобождения памяти можно настроить в зависимости от требований приложения, например, volatile-lru (удаляет редко используемые ключи с установленным временем жизни) или allkeys-lru (удаляет редко используемые ключи независимо от их TTL).
Длинный ответ
1. Когда возникает eviction:
- Когда Redis достигает лимита памяти, заданного параметром maxmemory.
- Redis начинает удалять ключи согласно выбранной политике.
2. Политики высвобождения:
- noeviction: Отклоняет новые записи, если память заполнена.
- allkeys-lru: Удаляет наименее используемые ключи.
- allkeys-random: Удаляет случайные ключи.
- volatile-lru: Удаляет наименее используемые ключи с установленным TTL.
- volatile-random: Удаляет случайные ключи с TTL.
- volatile-ttl: Удаляет ключи с минимальным оставшимся TTL.
Настройка:
Политику высвобождения памяти можно задать в redis.conf:
maxmemory 256mb
maxmemory-policy allkeys-lru
Грамотный выбор политики eviction важен для поддержания производительности и функциональности Redis при ограниченных ресурсах.