分布式緩存技術(shù)總結(jié)筆記

引言:最近工作之余學(xué)習(xí)幾種分布式緩存技術(shù)組件,在此做一個(gè)總結(jié)吧。

1.分布式概念

在此僅對自己所理解的分布式做一個(gè)簡單的白話解釋,如有不當(dāng)之處,歡迎各位讀者指正!

1.1 分布式系統(tǒng)

主要有多個(gè)數(shù)據(jù)源,需要進(jìn)行跨庫操作的應(yīng)用系統(tǒng)都可以稱之為分布式應(yīng)用系統(tǒng)

1.2 分布式緩存技術(shù)

大型網(wǎng)站的分布式緩存技術(shù),就是把數(shù)據(jù)存放在不同的物理機(jī)器上,利用分布式緩存中間件進(jìn)行處理數(shù)據(jù)。

2.分布式系統(tǒng)產(chǎn)生原因

a.互聯(lián)網(wǎng)應(yīng)用系統(tǒng),業(yè)務(wù)需求復(fù)雜,必須進(jìn)行系統(tǒng)級別的垂直拆分,保證各個(gè)業(yè)務(wù)清晰,各自部署對外提供服務(wù)。
b.針對用戶群廣泛,存在高并發(fā)的問題,對單個(gè)節(jié)點(diǎn)的服務(wù)器造成非常大的壓力
c.互聯(lián)網(wǎng)時(shí)代,數(shù)據(jù)量巨大,需要分布式系統(tǒng)。

3.分布式系統(tǒng)產(chǎn)生的問題

數(shù)據(jù)的一致性,安全性、可擴(kuò)展性、服務(wù)器的高可用、高承載能力等

4.分布式事務(wù)

4.1 概念

既然是分布式事務(wù),就是要有兩個(gè)數(shù)據(jù)源,而實(shí)現(xiàn)分布式事務(wù),目前常用的手段就是利用“兩階段提交協(xié)議(Two-Phase Commit)”(簡稱2PC),2PC存在著兩個(gè)重要的角色:事務(wù)協(xié)調(diào)器(TC),事務(wù)執(zhí)行者

zookeeper可以實(shí)現(xiàn)分布式事務(wù)

4.2 缺點(diǎn)

2PC,可以看到節(jié)點(diǎn)之間的通信次數(shù)太多了,時(shí)間很長!時(shí)間變長了,從而導(dǎo)致,事務(wù)鎖定的資源時(shí)間也變長了,造成資源等待時(shí)間變長!在高并發(fā)場景下,存在嚴(yán)重的性能問題!

4.3 最終一致性

分布式事務(wù),寫操作的時(shí)候,就使用樂觀更新,使用版本號進(jìn)行更新,能夠保證最終一致性就行了

5.分布式緩存中間件

5.1 Redis

redis是以key-value的形式存儲數(shù)據(jù),是一個(gè)非關(guān)系型的,分布式開源的(BSD協(xié)議),水平可擴(kuò)展的緩存服務(wù)器。redis用途:緩存(StackOverFlow),數(shù)據(jù)庫(微博),消息中間件(微博)

5.2 Memcached

memcached 是由 Danga Interactive 開發(fā)并使用 BSD 許可的一種通用的分布式內(nèi)存緩存系統(tǒng)。也是以key-value的形式存儲數(shù)據(jù)。由于它的工作機(jī)制是在內(nèi)存中開辟一塊空間,然后建立一個(gè)HashTable,Memcached自管理這些HashTable。

5.3 SSDB

SSDB是一個(gè)快速的用來存儲十億級別列表數(shù)據(jù)的開源NoSql數(shù)據(jù)庫,可以替代Redis數(shù)據(jù)庫,是Redis的100倍容量。LevelDB網(wǎng)絡(luò)支持,使用C/C++開發(fā)。與Redis完美兼容。

5.4Redis、Memcached、SSDB緩存數(shù)據(jù)庫簡單比較

a.都是key-value方式存儲
b.redis支持多種數(shù)據(jù)類型,如String Hash Set List等,并且支持集群方案(3.x)
c.Redis單線程操作(少了內(nèi)部的鎖,性能好,可以保證數(shù)據(jù)的原子性,Redis可以有多個(gè)實(shí)例變相提供并發(fā)操作),Memcached多線程操作(耗資源)。Memcached支持事務(wù)的概念,Redis事務(wù)支持很弱(Redis只能保證一個(gè)Key的原子性操作,多個(gè)Key的事務(wù)操作是不支持的,可以使用Lua腳本解決)。
d.Redis與SSDB,SSDB是基于google性能極高的LevelDB作為存儲引擎去架構(gòu)的,而且可以與Redis完美整合,一般會使用相互結(jié)合的方案,因?yàn)镾SDB性能高大上,但是高可用性不如Redis。(Redis和SSDB結(jié)合,Redis可以解決高并發(fā)的讀,SSDB解決高并發(fā)的寫。 )---推薦方式
e.Redis持久化方式:RDB、AOF(推薦)

我是一名奮斗在二線城市,每天擠公交上班寫代碼的程序猿!勵(lì)志在有限的時(shí)間能夠貢獻(xiàn)出自己最大的能量!請持續(xù)關(guān)注!我在簡書等你!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容