为什么 Redis 集群要使用反向代理? 看这篇就明白了!
如果没有反向代理,一台Redis可能需要跟很多个客户端连接:
如何使用代理?
很简单,将请求连接到调度代理器上,由Proxy负责将请求转发到后面的Redis服务实例,图示:
又有了新的问题,Proxy挂了可咋整?
Redis代理插件
Redis代理插件有很多,这儿简单介绍几款
predixy 高性能全特征redis代理,支持Redis Sentinel和Redis Cluster twemproxy 快速、轻量级memcached和redis代理 codis redis集群代理解决方案 redis-cerberus Redis Cluster代理
代理详细功能对比
特性 predixy twemproxy codis redis-cerberus 高可用 Redis Sentinel或Redis Cluster 一致性哈希 Redis Sentinel Redis Cluster 可扩展 Key哈希分布或Redis Cluster Key哈希分布 Key哈希分布 Redis Cluster 开发语言 C++ C GO C++ 多线程 是 否 是 是 事务 Redis Sentinel模式单Redis组下支持 不支持 不支持 不支持 BLPOP/BRPOP/BLPOPRPUSH 支持 不支持 不支持 支持 Pub/Sub 支持 不支持 不支持 支持 Script 支持load 不支持 不支持 不支持 Scan 支持 不支持 不支持 不支持 Select DB 支持 不支持 支持 Redis Cluster只有一个DB Auth 支持定义多个密码,给予不同读写及管理权限和Key访问空间 不支持 同redis 不支持 读从节点 支持,可定义丰富规则读指定的从节点 不支持 支持,简单规则 支持,简单规则 多机房支持 支持,可定义丰富规则调度流量 不支持 有限支持 有限支持 统计信息 丰富 丰富 丰富 简单
简单来说,predixy既支持Redis Sentinel也支持Redis Cluster
后端为Redis Sentinel监控的一组Redis,功能完全等同于原始Redis 后端为Redis Sentinel监控的多组Redis,则有部分功能受限 后端为Redis Cluster,功能完全等同于Redis Cluster