99er久久国产精品先锋_亚洲丰满少妇撒尿BBo_老外和中国女人毛片免费视频_思思热在线视频网站_av无码不卡高清_国产 激情 自拍_激情综合色婷婷激情丁香_少妇与子乱A级全毛片_男人捅女人的软件_日本欧美日韩

...

為什么 Redis 集群要使用反向代理? 看這篇就明白了!

2022-03-21

如果沒有反向代理,一臺(tái)Redis可能需要跟很多個(gè)客戶端連接:

圖片

看著是不是很慌?看沒關(guān)系,主要是連接需要消耗線程資源,沒有代理的話,Redis要將很大一部分的資源用在與客戶端建立連接上,redis的高可用和可擴(kuò)展無(wú)論是自帶的Redis Sentinel還是Redis Cluster都要求客戶端進(jìn)行額外的支持,而目前基本上沒有合適的客戶端能夠做這些事情,客戶端來(lái)做這些事情也并不合適,它會(huì)讓維護(hù)變得特別困難。

因此在客戶端和redis服務(wù)端之間加一層代理成了一種理想的方案,代理屏蔽后端Redis實(shí)現(xiàn)細(xì)節(jié)向客戶端提供redis服務(wù),可以完美的解決Redis的高可用和擴(kuò)展性問題,同時(shí)代理的引入也使得Redis維護(hù)變得更加簡(jiǎn)單。

于是乎,有了代理:

如何使用代理?

很簡(jiǎn)單,將請(qǐng)求連接到調(diào)度代理器上,由Proxy負(fù)責(zé)將請(qǐng)求轉(zhuǎn)發(fā)到后面的Redis服務(wù)實(shí)例,圖示:

圖片

又有了新的問題,Proxy掛了可咋整?

所以Proxy又需要做集群,甚至前面可以加一層負(fù)載均衡,負(fù)載均衡嘛,單機(jī)也存在單點(diǎn)故障等問題,一個(gè)Director肯定不行,搞不好又掛了,所以整一個(gè)主備,備機(jī)通過KeepAlived來(lái)檢測(cè)主LVS健康狀況,出了問題頂上去。

圖片

Redis代理插件

Redis代理插件有很多,這兒簡(jiǎn)單介紹幾款

predixy高性能全特征redis代理,支持Redis Sentinel和Redis Cluster
twemproxy快速、輕量級(jí)memcached和redis代理
codisredis集群代理解決方案
redis-cerberusRedis Cluster代理

代理詳細(xì)功能對(duì)比

特性predixytwemproxycodisredis-cerberus
高可用Redis Sentinel或Redis Cluster一致性哈希Redis SentinelRedis Cluster
可擴(kuò)展Key哈希分布或Redis ClusterKey哈希分布Key哈希分布Redis Cluster
開發(fā)語(yǔ)言C++CGOC++
多線程
事務(wù)Redis Sentinel模式單Redis組下支持不支持不支持不支持
BLPOP/BRPOP/BLPOPRPUSH支持不支持不支持支持
Pub/Sub支持不支持不支持支持
Script支持load不支持不支持不支持
Scan支持不支持不支持不支持
Select DB支持不支持支持Redis Cluster只有一個(gè)DB
Auth支持定義多個(gè)密碼,給予不同讀寫及管理權(quán)限和Key訪問空間不支持同redis不支持
讀從節(jié)點(diǎn)支持,可定義豐富規(guī)則讀指定的從節(jié)點(diǎn)不支持支持,簡(jiǎn)單規(guī)則支持,簡(jiǎn)單規(guī)則
多機(jī)房支持支持,可定義豐富規(guī)則調(diào)度流量不支持有限支持有限支持
統(tǒng)計(jì)信息豐富豐富豐富簡(jiǎn)單

簡(jiǎn)單來(lái)說,predixy既支持Redis Sentinel也支持Redis Cluster

  • 后端為Redis Sentinel監(jiān)控的一組Redis,功能完全等同于原始Redis
  • 后端為Redis Sentinel監(jiān)控的多組Redis,則有部分功能受限
  • 后端為Redis Cluster,功能完全等同于Redis Cluster


來(lái)源: 架構(gòu)師優(yōu)雅之道