為什么 Redis 集群要使用反向代理? 看這篇就明白了!
如果沒有反向代理,一臺(tái)Redis可能需要跟很多個(gè)客戶端連接:
如何使用代理?
很簡(jiǎn)單,將請(qǐng)求連接到調(diào)度代理器上,由Proxy負(fù)責(zé)將請(qǐng)求轉(zhuǎn)發(fā)到后面的Redis服務(wù)實(shí)例,圖示:
又有了新的問題,Proxy掛了可咋整?
Redis代理插件
Redis代理插件有很多,這兒簡(jiǎn)單介紹幾款
predixy 高性能全特征redis代理,支持Redis Sentinel和Redis Cluster twemproxy 快速、輕量級(jí)memcached和redis代理 codis redis集群代理解決方案 redis-cerberus Redis Cluster代理
代理詳細(xì)功能對(duì)比
特性 predixy twemproxy codis redis-cerberus 高可用 Redis Sentinel或Redis Cluster 一致性哈希 Redis Sentinel Redis Cluster 可擴(kuò)展 Key哈希分布或Redis Cluster Key哈希分布 Key哈希分布 Redis Cluster 開發(fā)語(yǔ)言 C++ C GO C++ 多線程 是 否 是 是 事務(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