一、Geode和redis兩個分布式內存數據庫的對比
兩者的定位不一(yi)樣。Geode是(shi)分布(bu)式(shi)內存(cun)數據庫(ku),提供了可配(pei)置(zhi)的一(yi)致性(xing)(xing)保(bao)證,能(neng)夠(gou)保(bao)證數據不丟失(shi),更符(fu)合(he)數據庫(ku)的定位。而Redis的定位本身(shen)就是(shi)緩(huan)存(cun),采(cai)用的最終一(yi)致性(xing)(xing)和周期性(xing)(xing)持(chi)久(jiu)化策略,在單(dan)服務進程模型下,提供了高性(xing)(xing)能(neng)緩(huan)存(cun)服務。Geode是(shi)java生態(tai)圈,有多種運行模式(shi),可以lib方式(shi)運行在client端(duan)(duan),其支持(chi)的客戶(hu)端(duan)(duan)語言(yan)有限。Redis引擎是(shi)C編寫,運行更高效,性(xing)(xing)能(neng)損耗低,由于交互協議(yi)簡單(dan),支持(chi)的客戶(hu)端(duan)(duan)語言(yan)眾(zhong)多,基本上常(chang)用的語言(yan)都能(neng)夠(gou)支持(chi)。
其(qi)實這兩者(zhe)(zhe)的比(bi)較(jiao)(jiao)不(bu)在一個維度上,一個是應用場景定位(wei),前者(zhe)(zhe)更看(kan)(kan)重(zhong)數據安(an)全性、后者(zhe)(zhe)作為緩存更看(kan)(kan)重(zhong)性能;一個是上手難度,前者(zhe)(zhe)上手比(bi)較(jiao)(jiao)困難,運(yun)維起(qi)來也會復雜很多(duo),后者(zhe)(zhe)上手簡單,集群化方(fang)案也比(bi)前者(zhe)(zhe)簡單;從社(she)區(qu)活躍度方(fang)面(mian)來看(kan)(kan),前者(zhe)(zhe)社(she)區(qu)不(bu)怎么(me)活躍,DB-ENGINES在kv存儲中(zhong)排名23, 后者(zhe)(zhe)社(she)區(qu)活躍,應用廣泛,在kv存儲中(zhong)排名第(di)1。
1)集群(qun)內存(cun)總容量(liang),現(xian)在Geode可以實現(xian)單個節點200-300GB內存(cun),總集群(qun)包含300個節點的(de)大型(xing)集群(qun),因此總容量(liang)可以達(da)到90TB左(zuo)右的(de)級別,而Redis即使(shi)使(shi)用集群(qun),也(ye)很難超過1個TB的(de)總內存(cun)。
2)Geode集(ji)(ji)群功(gong)能非常強大,實現(xian)了內(nei)存中數據(ju)Shard分布,自(zi)動(dong)管理,集(ji)(ji)群故障自(zi)動(dong)恢(hui)復,自(zi)動(dong)平均分布等一(yi)系列企業級的功(gong)能,而(er)且有自(zi)帶(dai)的集(ji)(ji)群間數據(ju)同(tong)步(bu)功(gong)能,這里(li)Redis都(dou)在(zai)努力追(zhui)趕,但(dan)是(shi)還沒(mei)有很成熟的實現(xian)。
3)在CAP原理下(不了解(jie)的(de)話可(ke)以百(bai)度一(yi)下CAP不可(ke)能三(san)角(jiao)),Geode可(ke)以保(bao)證集群內數據的(de)強一(yi)致性,注意是(shi)(shi)真正的(de)強一(yi)致性而不是(shi)(shi)最終一(yi)致性,再加上分區可(ke)用性,因此是(shi)(shi)一(yi)個CP型(xing)的(de)產品,可(ke)以提供統一(yi)的(de)數據視圖,支持高并發(fa)下的(de)acid事務。而Redis是(shi)(shi)不保(bao)證一(yi)致性的(de),因此即使Redis集群,也(ye)只能是(shi)(shi)AP型(xing)產品。
延伸閱讀:
二、什么是 Geode
Apache Geode 是(shi)一(yi)個(ge)數(shu)據(ju)(ju)(ju)管理(li)(li)平臺,可(ke)(ke)在廣泛分(fen)布(bu)的(de)云架構中提供(gong)對(dui)數(shu)據(ju)(ju)(ju)密(mi)集型應用程序的(de)實時、一(yi)致的(de)訪問。Geode 跨(kua)多個(ge)進程匯集內(nei)存、CPU、網絡資源和(he)可(ke)(ke)選(xuan)的(de)本地(di)磁(ci)盤,以管理(li)(li)應用程序對(dui)象(xiang)和(he)行為。它使用動態(tai)復制和(he)數(shu)據(ju)(ju)(ju)分(fen)區技術來實現高可(ke)(ke)用性、改(gai)進的(de)性能、可(ke)(ke)伸縮性和(he)容(rong)錯性。除了作為分(fen)布(bu)式數(shu)據(ju)(ju)(ju)容(rong)器之外(wai),Geode 還是(shi)一(yi)個(ge)內(nei)存數(shu)據(ju)(ju)(ju)管理(li)(li)系統,可(ke)(ke)提供(gong)可(ke)(ke)靠的(de)異步事件(jian)通知和(he)有保證的(de)消息(xi)傳遞。