首页 文章

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

提问于
浏览
2

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

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

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

  • 负载 balancer :使用LVS将读取请求重定向到相应的服务器以实现负载 balancer .

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

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

谢谢:)

1 回答

  • 2

    您可以使用以下内容非常接近您所需要的:

    twemproxy跨多个redis节点的分片数据(它还支持节点弹出和连接池)

    redis slave主/从复制

    redis sentinel来处理主故障转移

    根据您的需要,您可能需要一些脚本来监听故障转移(请参阅sentinel docs)并在主设备发生故障时清理

相关问题