極限加速!Web 開發者不能不知道的 Cache 大補帖!

什麼是快取 (Cache) ?

那就盡量不要發出網路請求或 DB query啊!

  • 頻繁被使用到
  • 資料不常變動

Cache Hit vs Cache Miss

快取的種類

Public vs Private

前端相關

  • Disk Cache (HTTP Cache)
  • Memory Cache
  • Service Worker Cache
  • CDN Cache
  • Stale While Revalidate

後端相關

  • Application cache (server side cache)
  • DB side cache
  • Cache policy

前端相關快取機制

Disk Cache (HTTP Cache)

  • Expires
  • Cache-Control
  • Last-Modified
  • If-Modified-Since
  • Etag
  • If-None-Match

Memory Cache

Service Worker Cache

  • 透過 Service Workers 的 Cache 實現離線瀏覽功能
  • 像 Native App 一樣的推播功能
  • Background Sync

CDN Cache

Stale-While-Revalidate

Cache-Control: max-age=1, stale-while-revalidate=59<秒數>

Client Side 各種快取的執行順序

後端相關快取機制

Application cache (server side cache)

Why Redis ?

DB side cache

Cache policy

在高併發的流量下,有可能產生快取與 DB 資料不一致的問題。

  • 資料的種類
  • 快取的位置
  • 快取的讀流程
  • 快取的寫流程

總結

--

--

什麼都想學的雜食性軟體工程師 🇹🇼 (https://github.com/kylemocode) 合作與聯繫 📪 oldmo860617@gmail.com

Love podcasts or audiobooks? Learn on the go with our new app.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
莫力全 Kyle Mo

莫力全 Kyle Mo

什麼都想學的雜食性軟體工程師 🇹🇼 (https://github.com/kylemocode) 合作與聯繫 📪 oldmo860617@gmail.com