自訂 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 參考
快取處理器可以實作下列方法:get
、set
和 revalidateTag
。
get()
參數 | 類型 | 描述 |
---|---|---|
key | string | 快取值的鍵。 |
傳回快取值,如果找不到則傳回 null
。
set()
參數 | 類型 | 描述 |
---|---|---|
key | string | 用於儲存資料的鍵。 |
data | 資料或 null | 要快取的資料。 |
ctx | { tags: [] } | 提供的快取標籤。 |
傳回 Promise<void>
。
revalidateTag()
參數 | 類型 | 描述 |
---|---|---|
tag | string 或 string[] | 要重新驗證的快取標籤。 |
傳回 Promise<void>
。深入瞭解重新驗證資料或 revalidateTag()
函式。
要知道
revalidatePath
是快取標籤之上的便利層。呼叫revalidatePath
將會呼叫您的revalidateTag
函式,然後您可以選擇是否要根據路徑標記快取金鑰。
版本歷史
版本 | 變更 |
---|---|
v14.1.0 | 重新命名為 cacheHandler 並成為穩定版本。 |
v13.4.0 | incrementalCacheHandlerPath 支援 revalidateTag 。 |
v13.4.0 | incrementalCacheHandlerPath 支援獨立輸出。 |
v12.2.0 | 新增實驗性 incrementalCacheHandlerPath 。 |
這有幫助嗎?