如何构建简化的redis集群(支持数据分片和负载均衡)?

时间:2013-10-09 03:42:39

标签: redis cluster-computing load-balancing sharding

由于redis集群仍在进行中,我想在当前阶段自己构建一个简单的集群。系统应支持数据分片,负载平衡和主从备份。初步计划如下:

  1. 主从:在不同位置使用多个主从对,以增强数据安全性。 Matsters负责写操作,而主设备和从设备都可以提供读取服务。在一次写操作期间,数据被发送到所有主设备。在主设备和从设备之间使用Keepalived来检测故障并自动切换主从设备。

  2. 数据分片:在客户端编写一致的哈希,以便在写入/读取期间支持数据分片,以防单个机器中的内存不存在。

  3. 负载均衡:使用LVS将读取请求重定向到相应的服务器以进行负载均衡。

  4. 我的问题是如何将LVS和数据分片结合在一起?

    例如,由于数据分片,所有密钥都被分割并存储在服务器A,B和C中而没有重叠。考虑到从备份和其他主从对,系统将包含1(A,B,C),2(A,B,C),3(A,B,C)等,其中每个有三个服务器。如何在读取请求到来时配置LVS以支持重定向?或者,在redis中还有其他方法可以实现相同的目标吗?

    感谢:)

1 个答案:

答案 0 :(得分:2)

使用以下方法可以非常接近您的需要:

多个redis节点上的

twemproxy分片数据(它还支持节点弹出和连接池)

redis slave master / slave replication

redis sentinel来处理主故障转移

根据您的需要,您可能需要一些脚本来监听故障转移(请参阅sentinel文档)并在主服务器关闭时进行清理