快取的歷史悠久
如果要從CPU開始講一定會跑題XD
所以先把範圍限縮在網頁會用到的就好
前端的快取意義主要是不要抓沒更新的資料
所以理論上資料沒更新 就讀本地端的暫存就好
HTTP cache本身有他cache的機制 可以看下面這篇
另外是現在spa跟javascript控制內容的網站很多
所以也會利用js把各種東西暫存在client端
https://addyosmani.com/basket.js/
像這個玩意就會可以把檔案cache在localstorage
讓前端去快取很簡單
但是最麻煩的是控制那些不要快取 跟什麼時候要更新
尤其現在很多東西都會上CDN
就變成要控制CDN先去抓新東西 才有辦法讓lclient抓到了
後端的快取主要是對處理過的資料作快取
讓資料可以不用短時間內重複處理
自然也就可以達到快速回應的效果
一開始玩可以先玩玩檔案快取
畢竟IO怎麼慢也可能比處理資料快
到後來可以玩memcache redis之類的服務
這兩個都是把資料存在記憶體裡面
所以IO都比檔案快取快
另外REDIS還有提供更多的功能可以玩
Redis 是一種快速、開放原始碼的記憶體內鍵值資料結構存放區。Redis 隨附一組多功能的記憶體內資料結構,讓您能夠輕鬆地建立各種自訂應用程式。Redis 主要使用案例包含快取、工作階段管理、發佈/訂閱以及排行榜。這是目前最熱門的鍵值存放區。已獲得 BSD 授權,以優化的 C 程式碼撰寫,且支援多種開發語言。Redis 是遠端字典伺服器 (REmote DIctionary Server) 的縮寫。
由於速度優勢和使用方便,Redis 成為需要最佳效能的 Web、行動、遊戲、廣告技術和物聯網應用程式的熱門選擇。AWS 透過稱為適用於 Redis 的 Amazon ElastiCache 的全受管且經過優化的資料庫服務提供 Redis 支援,也允許客戶在 AWS EC2 上執行自我管理的 Redis。
之後再單獨寫REDIS好了 不然會跑題
如果資料常更新 可以讓資料只讓cache存活短時間就好
像是論壇 就讓cache存活一分鐘就好
但如果資料不常更新 那可以讓cache存活久一點
類似新聞文章 有修改才去更新cache就好
曾經問過一個大大 怎樣使用cache才能不讓DB crash
他給我的回應 我理解以後是 不管怎樣系統沒有cache都不應該會讓DB crash
所以看是要修改程式還是把DB upgrade都可以
cache的目的應該是拿來讓系統加速回應 而不是檔在DB前面讓他不會掛掉
以上是個人理解 不保證是前輩原話的表達XD
寫到一半才想到要把頁面的快取特別拉出來
之前講的是資料處理跟畫面render的處理快取 通常是用資料的方式cache
但頁面的部分通常就會依網址做整份的快取
早期有名的服務是varnish
但現在大多都直接使用nginx內部的cache去做快取了
varnish還有RSI功能可以看一下
這點就算是nginx所沒有的了
打完以後去google 發現有人寫相關模組XD
雖然是九年前的事情了
CDN也能做到把整個頁面cache起來的事情
用的好的話 小主機要靠CDN撐大量用戶也不是問題
因為根本沒有連到你的主機啊XD
快取是個很好用的東西
到處都用的到
用的好就帶你上天堂
用得不好真的會帶你住套房
更新不了會讓你很想打人
昨天剛掰完才看到這篇
這篇講的蠻完整的
經常看到人分享成功的經驗 但是不好複製
但是看到失敗的經驗的時候 卻很好避免
所以我很愛這類文章
看戲
【译】针对 Airbnb 清单页的 React 性能优化 - 掘金
看Debug的過程也蠻有收穫的
新時代的IE更新了
感覺好用
Flight - An extensible micro-framework for PHP
寫小東西好像可以玩玩
一開始看錯標題
看完前言才知道是講VS CODE 的設定XDD
https://github.com/fripig/article_log/issues/427