讀《深入分散式快取 - 從原理到實踐》

wide288發表於2020-12-21

於君澤,曹洪偉,邱碩 著

無處不在的快取,空間換時間的藝術

分散式系統中大規模使用快取是從早期網際網路三大法寶:MemCache, 反向代理,分庫分表,開始的。

快取:儲存在計算機上的一個原始資料複製集,以便於訪問。(維基百科)

快取位置分:客戶端快取,服務端快取,網路中的快取。

快取規模分:單體快取,快取叢集,分散式快取。

系統效能的指標:響應時間,延遲時間,吞吐量,併發使用者數和資源利用率等。

響應時間:呈現時間,系統響應時間。

系統響應時間 = 網路傳輸時間 + 應用延遲時間

頁面快取

APP 上的快取

web 代理快取

邊緣快取:反向代理快取可以快取原始資源伺服器的資源,而不是每次都要向原始資源伺服器請求資料。

資料庫快取

Mysql 的查詢快取

檢驗 Query Cache 的合理性,15頁

 

Voldemort 相當於 Amazon Dynamo 的一個開源實現。基於 java 開發的分散式鍵-值快取系統。

Redis 快取

快取演算法

快取命中

沒有命中,cache miss

儲存成本:當沒有快取命中時,系統會從資料庫或其他資料來源取出資料,然後放入快取。而這個資料放入快取所需要的時間和空間,就是儲存成本。

快取失效:當儲存在快取中的資料需要更新時,就意味著快取中的這一資料失效了。

替代策略:當快取沒有命中時,並且快取容量已經滿了,就需要在快取中去除一條舊資料,然後加入一條新資料,而到底應該去除哪些資料,就是由替代策略決定的。

 

替代策略的具體實現就是快取演算法:

1, LRU

2, LFU

3, LRU2

4, 2Q

5, SIZE

6, LRU-Threshold

7, Log(Size)+LRU

 

動態擴容

資料多備

自動容災

成本較低

等等,這本書還是不錯的。快取方面的介紹還是很多的,不過只能算是引導,不是全面的手冊書。

相關文章