跳到內容

自定義 Next.js 快取處理程式

您可以配置 Next.js 快取位置,以便將快取的頁面和資料持久化到持久儲存中,或在 Next.js 應用程式的多個容器或例項之間共享快取。

須知cacheHandler 配置專用於 Next.js 的伺服器快取操作,例如儲存和重新驗證 ISR 和路由處理程式響應。它不被 'use cache''use cache: remote''use cache: private' 使用,這些指令獨立管理自己的快取。

next.config.js
module.exports = {
  cacheHandler: require.resolve('./cache-handler.js'),
  cacheMaxMemorySize: 0, // disable default in-memory caching
}

檢視自定義快取處理程式的示例,並瞭解更多實現細節。

API 參考

快取處理程式可以實現以下方法:getsetrevalidateTagresetRequestCache

get()

引數型別描述
keystring快取值的鍵。

返回快取值,如果未找到則返回 null

set()

引數型別描述
keystring用於儲存資料的鍵。
data資料或 null要快取的資料。
ctx{ tags: [] }提供的快取標籤。

返回 Promise<void>

revalidateTag()

引數型別描述
tagstringstring[]要重新驗證的快取標籤。

返回 Promise<void>。瞭解更多關於重新驗證資料revalidateTag()函式的資訊。

resetRequestCache()

此方法在下一個請求之前重置單個請求的臨時記憶體快取。

返回 void

須知

  • revalidatePath 是快取標籤的便利層。呼叫 revalidatePath 將呼叫您的 revalidateTag 函式,然後您可以選擇是否根據路徑標記快取鍵。

平臺支援

部署選項支援
Node.js 伺服器
Docker 容器
靜態匯出
介面卡平臺特定

瞭解如何在自託管 Next.js 時配置 ISR

版本歷史

版本更改
v14.1.0重新命名為 cacheHandler 並變得穩定。
v13.4.0incrementalCacheHandlerPath 支援 revalidateTag
v13.4.0incrementalCacheHandlerPath 支援獨立輸出。
v12.2.0添加了實驗性的 incrementalCacheHandlerPath