跳到內容

自訂 Next.js 快取處理器

頁面快取和重新驗證(使用遞增式靜態再生)使用相同的共用快取。當部署到 Vercel時,ISR 快取會自動持久儲存到耐用儲存空間。

當您自行託管時,ISR 快取會儲存到 Next.js 伺服器上的檔案系統(磁碟上)。當使用 Pages 和 App Router 進行自行託管時,這會自動運作。

如果您想要將快取的頁面和資料持久儲存到耐用儲存空間,或在 Next.js 應用程式的多個容器或執行個體之間共用快取,您可以設定 Next.js 快取位置。

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

查看自訂快取處理器的範例,並深入瞭解實作方式。

API 參考

快取處理器可以實作下列方法:getsetrevalidateTag

get()

參數類型描述
keystring快取值的鍵。

傳回快取值,如果找不到則傳回 null

set()

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

傳回 Promise<void>

revalidateTag()

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

傳回 Promise<void>。深入瞭解重新驗證資料revalidateTag() 函式。

要知道

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

版本歷史

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