官术网_书友最值得收藏!

推薦序2

無處不在的緩存,空間換時間的藝術

Cache這個詞,據說來自于法語,本意是當CPU處理數據時,先到Cache中去尋找,如果數據在之前的操作已經讀取而被暫存其中,就不需要從主內存(Main memory)中讀取。后來Cache的范圍有所擴大,凡是位于速度相差較大的兩種硬件之間,用于協調兩者數據傳輸速度差異的結構,都稱為Cache。

現在,我們談的緩存,已經遠遠突破了原有的概念,在我看來,緩存是一種通用的設計模式:這種模式利用增加存儲空間的方式,實現低速部件與高速部件之間的解耦。換而言之,只要實現了解耦的地方,就有存在緩存的可能,既然解耦是計算機系統架構設計中最常用的手段,那么緩存就必將在計算機系統中無處不在。緩存用空間換時間的方式解決問題,而空間不可能無限使用,使用緩存時我們通常會考慮如何選擇存儲方式、如何使用多級緩存節省空間、如何有效提高緩存的命中率、如何確定有效的更新策略等問題,這些思考會有相當普遍的適用性。

本書重點解讀了分布式系統下如何使用緩存。分布式系統中大規模使用緩存是從早期互聯網三大法寶(MemCache、反向代理、分庫分表)開始的,利用這種集中式、大規模的緩存技術,我們解決了數據庫低速IO與高速應用之間的矛盾。我們也發現,除了緩存的通用問題之外,分布式系統緩存還需要解決更多的問題,例如如何對多種類型數據選擇不同的存儲方式、如何保證數據一致性、如何提高緩存自身的可用性、如何增強系統的可維護性。為了系統性解決這些問題,分布式緩存逐漸變成了分布式架構系統中的一個基礎設施。

緩存的使用雖然廣泛,但把緩存作為一種基礎設施的發展歷史并不長,大多數的商業化軟件比較復雜,主要以內存數據庫為主,而輕量型分布式緩存在不同場景下有不同的關注點和使用方式。君澤集合了一批老司機,為大家展示了多種分布式系統中緩存的使用場景與方案,既有新浪微博這樣重量級社交平臺信息聚合、分發緩存的方法,也有海量廣告業務信息撮合的緩存模式;既有電商系統冷熱數據分離的緩存策略,也有對完整分布式系統緩存的技術選型和總結。

通過分布式、微服務架構,實現業務的云化/數字化,建立起的應用生態是一個復雜的體系,其中方方面面的著作很多,但專注在緩存方面的還沒有,本書選擇了這個方向,就是希望能幫助我們形成一個完整的技術視圖,我相信這是作者們做這件事的初衷。

——焦烈焱 普元信息CTO

主站蜘蛛池模板: 长沙县| 庄浪县| 德化县| 安义县| 左贡县| 丹阳市| 西畴县| 沿河| 庐江县| 文水县| 佳木斯市| 静乐县| 昌邑市| 景德镇市| 恩平市| 延庆县| 措勤县| 郸城县| 霍城县| 九江县| 区。| 永平县| 共和县| 肥乡县| 黔西县| 眉山市| 丹巴县| 仁怀市| 永定县| 刚察县| 肥城市| 汉寿县| 富顺县| 靖西县| 六安市| 青铜峡市| 富宁县| 新绛县| 田林县| 宜君县| 平顺县|