Кэширование (Redis)

Redis

Что это такое

Кэш держит копию данных, которые дорого получить, в месте, откуда их быстро читать. Для этого обычно и берут Redis — хранилище «ключ — значение» в памяти, — а заодно для сессий, счётчиков, ограничения частоты и очередей. Живя в памяти, оно читает и пишет куда быстрее базы данных. Платой служат небольшой размер хранилища и то, что его содержимое не источник истины.

Почему это важно

В большинстве приложений есть несколько чтений, случающихся гораздо чаще, чем меняются сами данные: страница товара, флаг функции, права пользователя. Если отдавать их из памяти, с базы снимается большая часть нагрузки, а с запроса — большая часть задержки; часто это самый крупный доступный выигрыш в производительности, и схемы менять для него не нужно. Однако у данных теперь две копии, и вторая может быть неверной; вся дисциплина как раз в том, чтобы этим управлять.

Что в этом треке

  1. Паттерны кэширования (05-backend-data/16-caching-redis/01-caching-patterns) — где сидит кэш, как он наполняется и что в нём хранится.
  2. Инвалидация (05-backend-data/16-caching-redis/02-invalidation) — как держать копию честной и что делать, когда она такой не стала.

Предварительные требования

Что читать дальше