<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>快取失效策略 on Tarragon</title><link>https://tarrragon.github.io/blog/tags/%E5%BF%AB%E5%8F%96%E5%A4%B1%E6%95%88%E7%AD%96%E7%95%A5/</link><description>Recent content in 快取失效策略 on Tarragon</description><generator>Hugo -- gohugo.io</generator><language>zh-TW</language><copyright>Tarragon (CC BY 4.0)</copyright><lastBuildDate>Thu, 23 Apr 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://tarrragon.github.io/blog/tags/%E5%BF%AB%E5%8F%96%E5%A4%B1%E6%95%88%E7%AD%96%E7%95%A5/index.xml" rel="self" type="application/rss+xml"/><item><title>Cache Invalidation</title><link>https://tarrragon.github.io/blog/backend/knowledge-cards/cache-invalidation/</link><pubDate>Thu, 23 Apr 2026 00:00:00 +0000</pubDate><guid>https://tarrragon.github.io/blog/backend/knowledge-cards/cache-invalidation/</guid><description>&lt;p>快取失效策略的核心概念是「定義快取資料何時離開可用狀態」。快取可以加速讀取與降低下游壓力，但資料來源更新後，快取需要透過 TTL、主動刪除、版本鍵、write-through、event invalidation 或重建流程維持合理一致性。 可先對照 &lt;a href="https://tarrragon.github.io/blog/backend/knowledge-cards/cache-prefetching/" data-link-title="Cache Prefetching" data-link-desc="說明系統如何在資料被需要前預先載入快取">Cache Prefetching&lt;/a>。&lt;/p>
&lt;h2 id="概念位置">概念位置&lt;/h2>
&lt;p>快取失效是讀取效能與資料正確性的交界。失效太頻繁會降低快取命中率；失效太慢會讓使用者看到過期資料。多層快取還會增加判斷難度，因為 browser、CDN、application cache、Redis 與 local memory 可能各自保存不同版本。 可先對照 &lt;a href="https://tarrragon.github.io/blog/backend/knowledge-cards/cache-prefetching/" data-link-title="Cache Prefetching" data-link-desc="說明系統如何在資料被需要前預先載入快取">Cache Prefetching&lt;/a>。&lt;/p>
&lt;h2 id="可觀察訊號">可觀察訊號&lt;/h2>
&lt;p>系統需要整理失效策略的訊號是資料更新後，讀取結果在不同頁面、不同使用者或不同服務之間出現差異。常見場景包括商品價格、庫存、會員權限、設定檔、排行榜、熱門文章與 feature flag。&lt;/p>
&lt;h2 id="接近真實網路服務的例子">接近真實網路服務的例子&lt;/h2>
&lt;p>電商後台更新商品價格後，搜尋頁仍顯示舊價格，商品頁顯示新價格，結帳頁又重新查資料庫。這代表不同讀取路徑使用不同快取層，失效策略需要定義更新事件要清哪些 key、哪些頁面可接受短暫延遲、結帳是否必須讀正式來源。&lt;/p>
&lt;h2 id="設計責任">設計責任&lt;/h2>
&lt;p>快取設計要把資料語意分級。價格、庫存、權限這類影響交易或安全的資料需要更短 TTL、版本控制或讀正式來源；排行榜、推薦與統計可以接受較長延遲。Runbook 應提供查 key、清 key、比對正式資料與追蹤失效事件的方法。&lt;/p></description><content:encoded><![CDATA[<p>快取失效策略的核心概念是「定義快取資料何時離開可用狀態」。快取可以加速讀取與降低下游壓力，但資料來源更新後，快取需要透過 TTL、主動刪除、版本鍵、write-through、event invalidation 或重建流程維持合理一致性。 可先對照 <a href="/blog/backend/knowledge-cards/cache-prefetching/" data-link-title="Cache Prefetching" data-link-desc="說明系統如何在資料被需要前預先載入快取">Cache Prefetching</a>。</p>
<h2 id="概念位置">概念位置</h2>
<p>快取失效是讀取效能與資料正確性的交界。失效太頻繁會降低快取命中率；失效太慢會讓使用者看到過期資料。多層快取還會增加判斷難度，因為 browser、CDN、application cache、Redis 與 local memory 可能各自保存不同版本。 可先對照 <a href="/blog/backend/knowledge-cards/cache-prefetching/" data-link-title="Cache Prefetching" data-link-desc="說明系統如何在資料被需要前預先載入快取">Cache Prefetching</a>。</p>
<h2 id="可觀察訊號">可觀察訊號</h2>
<p>系統需要整理失效策略的訊號是資料更新後，讀取結果在不同頁面、不同使用者或不同服務之間出現差異。常見場景包括商品價格、庫存、會員權限、設定檔、排行榜、熱門文章與 feature flag。</p>
<h2 id="接近真實網路服務的例子">接近真實網路服務的例子</h2>
<p>電商後台更新商品價格後，搜尋頁仍顯示舊價格，商品頁顯示新價格，結帳頁又重新查資料庫。這代表不同讀取路徑使用不同快取層，失效策略需要定義更新事件要清哪些 key、哪些頁面可接受短暫延遲、結帳是否必須讀正式來源。</p>
<h2 id="設計責任">設計責任</h2>
<p>快取設計要把資料語意分級。價格、庫存、權限這類影響交易或安全的資料需要更短 TTL、版本控制或讀正式來源；排行榜、推薦與統計可以接受較長延遲。Runbook 應提供查 key、清 key、比對正式資料與追蹤失效事件的方法。</p>
]]></content:encoded></item></channel></rss>