Redis Cache

Плагин для Payload v3, добавляющий кэширующий слой на Redis поверх адаптера базы данных и перехватывающий операции чтения и записи.

Сообщество 15 49/нед MIT v0.2.17

Установка

pnpm add payloadcms-redis-plugin

Описание

Плагин оборачивает адаптер базы данных Payload v3 кэширующим слоем на Redis через систему плагинов. Операции чтения (find, findOne, count, countVersions, countGlobalVersions, findGlobal, findGlobalVersions, queryDrafts) сначала проверяют Redis, а при промахе уходят в базу с сохранением результата по TTL. Операции записи (create, createMany, updateOne, updateMany, deleteOne, deleteMany, upsert, updateGlobal, deleteVersions) сбрасывают кэш соответствующей коллекции или глобала после успешного выполнения. Подключение происходит в config.onInit. Плагин пингует Redis, затем заменяет payload.db декорированным адаптером. Redis-клиентом служит ioredis: можно передать redis.url или готовый redis.client. Кэширование включается отдельно для каждой коллекции или глобала. Для каждого настраиваются TTL (по умолчанию 300 секунд), флаг skip и собственный ключ. На уровне запроса доступны переопределения через req.context.cache: можно пропустить кэш, изменить TTL, задать фиксированный ключ или теги. Ключ по умолчанию строится из slug, операции, локали и where, хешируется MD5. Генератор ключа можно полностью заменить через generateKey. Сброс кэша использует redis.keys() с паттернами. При большом количестве ключей в продакшене это может стать узким местом, что отмечено в документации. Ошибки кэша перехватываются тихо, поэтому недоступность Redis не ломает запросы в базу. В debug-режиме логируются попадания, промахи и сбросы. Плагин требует payload ^3.37.0 и ioredis ^5.8.2.

О пакете

Имя пакета
payloadcms-redis-plugin
Последняя версия
0.2.17
Размер
88 кБ
Лицензия
MIT
Загрузок в неделю
49
Последняя публикация
31 окт. 2025 г.