Войти Регистрация
Data base

256. Политика вытеснения для кэша без TTL

Лёгкая

Redis · Redis 7.4

Trello держал в Redis то, что не жалко потерять: активность сессий, временные ключи входа через OpenID, данные для pub/sub. Приложение умеет восстановить их, если ключа нет. Памяти Redis выделяли примерно в пять раз больше рабочего набора.

Представим похожий кэш: maxmemory 4gb, рабочий набор около 800 МБ, но ключи копятся и TTL стоит меньше чем у 10 % из них. Часть ключей читают тысячи раз в минуту, большую часть — раз в день.

Когда память кончится, Redis должен освобождать место сам, не возвращая ошибки на запись и не трогая то, что читают постоянно.

В работе: Кэш перед базой, сессии, временные токены — любой Redis, где все данные можно восстановить из первоисточника.

Как проверяем Движка Redis в браузере пока нет, поэтому здесь не запрос, а выбор решения. Выберите один вариант. После ответа — почему каждый вариант верный или нет. Ответ один на подход: после него показываем разбор.
maxmemorymaxmemory-policyallkeys-lruвытеснение

Источник: кейс Trello: стек технологий, блог Atlassian, 2012. Условие пересказано своими словами.

Какую maxmemory-policy выбрать?

  • allkeys-lru
  • noeviction
  • volatile-lru
  • allkeys-random
  • volatile-ttl