Пользовательский обработчик кэша Next.js
Вы можете настроить расположение кэша Next.js, если хотите сохранять кэшированные страницы и данные в постоянное хранилище или совместно использовать кэш между несколькими контейнерами или экземплярами вашего приложения Next.js.
module.exports = {
cacheHandler: require.resolve('./cache-handler.js'),
cacheMaxMemorySize: 0, // отключаем кэширование в памяти по умолчанию
}
Ознакомьтесь с примером пользовательского обработчика кэша и узнайте больше о его реализации.
Справочник API
Обработчик кэша может реализовывать следующие методы: get
, set
, revalidateTag
и resetRequestCache
.
get()
Параметр | Тип | Описание |
---|---|---|
key | string | Ключ для получения значения. |
Возвращает кэшированное значение или null
, если значение не найдено.
set()
Параметр | Тип | Описание |
---|---|---|
key | string | Ключ для хранения данных. |
data | Data или null | Данные для кэширования. |
ctx | { tags: [] } | Теги кэша. |
Возвращает Promise<void>
.
revalidateTag()
Параметр | Тип | Описание |
---|---|---|
tag | string или string[] | Теги кэша для обновления. |
Возвращает Promise<void>
. Узнайте больше о перевалидации данных или функции revalidateTag()
.
resetRequestCache()
Этот метод сбрасывает временный кэш в памяти для одного запроса перед следующим запросом.
Возвращает void
.
Полезно знать:
revalidatePath
— это удобный слой поверх тегов кэша. ВызовrevalidatePath
вызовет вашу функциюrevalidateTag
, после чего вы можете решить, хотите ли вы помечать ключи кэша на основе пути.
Поддержка платформ
Вариант развертывания | Поддержка |
---|---|
Сервер Node.js | Да |
Контейнер Docker | Да |
Статический экспорт | Нет |
Адаптеры | Зависит от платформы |
Узнайте, как настроить ISR при самостоятельном хостинге Next.js.
История версий
Версия | Изменения |
---|---|
v14.1.0 | Переименован в cacheHandler и стал стабильным. |
v13.4.0 | Поддержка revalidateTag для incrementalCacheHandlerPath . |
v13.4.0 | Поддержка автономного вывода для incrementalCacheHandlerPath . |
v12.2.0 | Добавлена экспериментальная incrementalCacheHandlerPath . |