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