Sobes.tech
Back to questions
Senior
8

Какие политики вытеснения бывают в Redis?

Companies where asked
Lenta Tech

Answer from AI

sobes.tech AI

В Redis существует несколько политик вытеснения (eviction policies), которые определяют, как Redis освобождает память при достижении лимита памяти (maxmemory). Основные политики:

  • noeviction — при достижении лимита памяти новые записи не добавляются, возвращается ошибка.
  • allkeys-lru — удаляются наименее недавно используемые (LRU) ключи из всех ключей.
  • volatile-lru — удаляются наименее недавно используемые ключи, у которых установлен срок жизни (TTL).
  • allkeys-random — удаляются случайные ключи из всех ключей.
  • volatile-random — удаляются случайные ключи с TTL.
  • volatile-ttl — удаляются ключи с TTL, у которых срок жизни истекает раньше всего.

Выбор политики зависит от сценария использования:

  • Если важна сохранность данных, можно использовать noeviction.
  • Для кэширования часто применяют allkeys-lru.
  • volatile-* политики применимы, если важны только временные ключи.

В Go при работе с Redis через клиент (например, go-redis) политики задаются на стороне Redis-сервера в конфигурации, а не в клиенте.