redis - 如何搭建一个简化的redis集群(支持数据分片、负载均衡)?

标签 redis cluster-computing load-balancing sharding

由于redis集群还在开发中,现阶段我想自己搭建一个简单的。系统应支持数据分片、负载均衡和主从备份。初步方案如下:

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

  2. 数据分片:在客户端写入一致的hash,支持读写时的数据分片,以防单机内存不够。

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

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

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

谢谢:)

最佳答案

您可以通过使用以下内容来真正接近您的需求:

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

redis Slave主从复制

redis sentinel处理主故障转移

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

关于redis - 如何搭建一个简化的redis集群(支持数据分片、负载均衡)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19262697/

相关文章:

c# - 使用多个处理器包装非托管代码

.net - 如何利用Redis缓存实现自动刷新

ruby-on-rails - Discourse server启动失败,出现redis相关错误

ubuntu - 无法访问 Spark Web UI

go - 如何在 Go 中有效地处理数千个保持事件连接?

java - 如何使用JavaDSL保持 Camel 上的路由运行?

redis - 如何将我的自定义 ServiceStack 身份验证提供程序与 Redis 一起使用?

php - 可以从 REDIS 订阅返回响应吗?

python - 将多个列中的匹配对分组在一起 Python

linux - 如何列出集群上给定帐户可用的所有程序?