推荐两种:一、Twemproxy:Twemproxy是Twitter开源的redis集群架构,但是,目前Twitter 内部已放弃使用该方案,新使用的架构未开源。很多互联网公司以twemproxy为基础,开发出自己需要的功能属性。架构图如下:76sqzlucc28多个同构 Twemproxy(配置相同)同时工作,接受客户端的请求,根据 has...
显示全部推荐两种:
一、Twemproxy:
Twemproxy是Twitter开源的redis集群架构,但是,目前Twitter 内部已放弃使用该方案,新使用的架构未开源。很多互联网公司以twemproxy为基础,开发出自己需要的功能属性。
架构图如下:
76sqzlucc28
多个同构 Twemproxy(配置相同)同时工作,接受客户端的请求,根据 hash 算法,转发给对应的 Redis。
Twemproxy 方案比较成熟了,但是有两个主要缺点:一方面是定位问题比较困难,另一方面是它对自动剔除节点的支持不是很友好。
二、redis cluster:
redis官方推出的无中心的集群架构。
架构图:
ai490w76ji
每个节点要打开两个TCP端口,分别是:
1、TCP命令端口:
正常服务端口,为客户端提供服务,存储键值数据、查询数据。
2、集群端口(TCP命令端口+ 10000):
集群节点间通过gossip协议进行通信,将交换的信息封装在gossip消息中。
每个节点在固定的时间周期内(每秒执行10次)选择几个节点发送ping消息。接收ping消息的节点用pong消息作为响应。
为了保证Redis命令端口的正常使用,请确保在防火墙中打开这两个端口,否则Redis群集节点将无法通信。
缺点:
redis集群对客户端通信协议进行了大的修改,为了追求性能,没有采用代理形式,而是采用客户端直连节点的形式,因此需要客户端修改代码。
集群模式下,redis节点收到任何命令,先计算键对应的槽,如果在自身节点上,则处理命令;如果不在,则返回moved错误,通知客户端请求正确的节点。
收起