自定義 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 參考
快取處理程式可以實現以下方法:get、set、revalidateTag 和 resetRequestCache。
get()
| 引數 | 型別 | 描述 |
|---|---|---|
key | string | 快取值的鍵。 |
返回快取值,如果未找到則返回 null。
set()
| 引數 | 型別 | 描述 |
|---|---|---|
key | string | 用於儲存資料的鍵。 |
data | 資料或 null | 要快取的資料。 |
ctx | { tags: [] } | 提供的快取標籤。 |
返回 Promise<void>。
revalidateTag()
| 引數 | 型別 | 描述 |
|---|---|---|
tag | string 或 string[] | 要重新驗證的快取標籤。 |
返回 Promise<void>。瞭解更多關於重新驗證資料或revalidateTag()函式的資訊。
resetRequestCache()
此方法在下一個請求之前重置單個請求的臨時記憶體快取。
返回 void。
須知
revalidatePath是快取標籤的便利層。呼叫revalidatePath將呼叫您的revalidateTag函式,然後您可以選擇是否根據路徑標記快取鍵。
平臺支援
| 部署選項 | 支援 |
|---|---|
| Node.js 伺服器 | 是 |
| Docker 容器 | 是 |
| 靜態匯出 | 否 |
| 介面卡 | 平臺特定 |
瞭解如何在自託管 Next.js 時配置 ISR。
版本歷史
| 版本 | 更改 |
|---|---|
v14.1.0 | 重新命名為 cacheHandler 並變得穩定。 |
v13.4.0 | incrementalCacheHandlerPath 支援 revalidateTag。 |
v13.4.0 | incrementalCacheHandlerPath 支援獨立輸出。 |
v12.2.0 | 添加了實驗性的 incrementalCacheHandlerPath。 |
這有幫助嗎?