爲什麼(me) Redis 集群要使用反向(xiàng)代理? 看這(zhè)篇就(jiù)明白了!
如果沒(méi)有反向(xiàng)代理,一台Redis可能(néng)需要跟很多個客戶端連接:
如何使用代理?
很簡單,將(jiāng)請求連接到調度代理器上,由Proxy負責將(jiāng)請求轉發(fā)到後(hòu)面(miàn)的Redis服務實例,圖示:
又有了新的問題,Proxy挂了可咋整?
Redis代理插件
Redis代理插件有很多,這(zhè)兒簡單介紹幾款
predixy 高性能(néng)全特征redis代理,支持Redis Sentinel和Redis Cluster twemproxy 快速、輕量級memcached和redis代理 codis redis集群代理解決方案 redis-cerberus Redis Cluster代理
代理詳細功能(néng)對(duì)比
特性 predixy twemproxy codis redis-cerberus 高可用 Redis Sentinel或Redis Cluster 一緻性哈希 Redis Sentinel Redis Cluster 可擴展 Key哈希分布或Redis Cluster Key哈希分布 Key哈希分布 Redis Cluster 開(kāi)發(fā)語言 C++ C GO C++ 多線程 是 否 是 是 事(shì)務 Redis Sentinel模式單Redis組下支持 不支持 不支持 不支持 BLPOP/BRPOP/BLPOPRPUSH 支持 不支持 不支持 支持 Pub/Sub 支持 不支持 不支持 支持 Script 支持load 不支持 不支持 不支持 Scan 支持 不支持 不支持 不支持 Select DB 支持 不支持 支持 Redis Cluster隻有一個DB Auth 支持定義多個密碼,給予不同讀寫及管理權限和Key訪問空間 不支持 同redis 不支持 讀從節點 支持,可定義豐富規則讀指定的從節點 不支持 支持,簡單規則 支持,簡單規則 多機房支持 支持,可定義豐富規則調度流量 不支持 有限支持 有限支持 統計信息 豐富 豐富 豐富 簡單
簡單來說(shuō),predixy既支持Redis Sentinel也支持Redis Cluster
後(hòu)端爲Redis Sentinel監控的一組Redis,功能(néng)完全等同于原始Redis 後(hòu)端爲Redis Sentinel監控的多組Redis,則有部分功能(néng)受限 後(hòu)端爲Redis Cluster,功能(néng)完全等同于Redis Cluster