Пользовательский обработчик кэша Next.js

Вы можете настроить расположение кэша Next.js, если хотите сохранять кэшированные страницы и данные в постоянное хранилище или совместно использовать кэш между несколькими контейнерами или экземплярами вашего приложения Next.js.

next.config.js
module.exports = {
  cacheHandler: require.resolve('./cache-handler.js'),
  cacheMaxMemorySize: 0, // отключаем кэширование в памяти по умолчанию
}

Ознакомьтесь с примером пользовательского обработчика кэша и узнайте больше о его реализации.

Справочник API

Обработчик кэша может реализовывать следующие методы: get, set, revalidateTag и resetRequestCache.

get()

ПараметрТипОписание
keystringКлюч для получения значения.

Возвращает кэшированное значение или null, если значение не найдено.

set()

ПараметрТипОписание
keystringКлюч для хранения данных.
dataData или nullДанные для кэширования.
ctx{ tags: [] }Теги кэша.

Возвращает Promise<void>.

revalidateTag()

ПараметрТипОписание
tagstring или 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.