關(guān)于twemproxy和redis分布式

為什么要使用twemproxy 出于兩點原因:
1、redis是單線程實例,若要獲得多核的好處,只能實現(xiàn)多個實例,
實例之間不能共享數(shù)據(jù),只能sharding?
2、若數(shù)據(jù)量太大,則必須分布式部署redis,
使用sharding 兩個原因其實可以歸為一個,如何分布式部署redis。?
為什么要使用twemproxy
出于兩點原因:
1、redis是單線程實例,若要獲得多核的好處,只能實現(xiàn)多個實例,香港服務(wù)器,
實例之間不能共享數(shù)據(jù),只能sharding
2、若數(shù)據(jù)量太大,則必須分布式部署redis,使用sharding
兩個原因其實可以歸為一個,如何分布式部署redis。?
而redis本身并不支持分布式部署,只支持master-slave,香港服務(wù)器,若客戶端直接操作redis的話,
就必須在應(yīng)用層編寫sharding和節(jié)點監(jiān)控的代碼。
如果使用twemproxy作為代理,客戶端不直接操作redis只是訪問rwemproxy,
sharding和節(jié)點監(jiān)控以及其他一些麻煩的工作rwemproxy都幫我們做好了,
美國服務(wù)器,只需要配置即可。
項目應(yīng)用的時候,我們可能會把redis作為數(shù)據(jù)存儲也可能會拿來做緩存,
第一種情況我們需要在配置中做靜態(tài)映射,第二種情況我們允許自動卸載失敗節(jié)點,
過一段時間重試,這時候數(shù)據(jù)可能會被寫到另外一個節(jié)點,導(dǎo)致弱一致性。
注意的地方:
1、twemproxy也是單線程實例,在生產(chǎn)環(huán)境可能需要啟動多個實例以發(fā)揮多核的能力。
2、不支持除mget,del之外的redis批處理命令,如取多個集合交集等等
3、不支持腳本eval
4、twemproxy不能夠拿從節(jié)點作為替代方案
本文來源:https://www.fushouyu.com/shouyou/139.html