使用jedis客户端从spring开始使用Redis集群

时间:2015-08-30 18:37:17

标签: redis jedis amazon-elasticache spring-data-redis

我已使用jedis将redis集成到我的spring web应用程序中(redis支持来自AWS Elastic缓存)。使用单个节点可以使用单个jedis连接工厂进行写入和读取。

我现在需要将其扩展到一个集群,以便写入主节点并从辅助节点读取。即如果一个发生故障,那么AWS会自动进行复制,在这种情况下,我将连接的主机名将会发生变化。

如何读取出现的新节点?

如何从spring容器(我的意思是XML文件)连接到它?

请,任何人都有有用的建议,以实现上述方案。

我很感激任何可能有助于解决上述问题的链接或代码。

截至目前,我正在使用一个连接工厂,使用jedis和redis模板进行操作。

2 个答案:

答案 0 :(得分:4)

您无需为此做任何事情,AWS ElastiCache将处理故障转移。

您的redis群集包含两个节点,主节点和副本节点。如果主节点发生某些情况,则会自动故障转移到副本节点。 故障转移发生在复制组节点DNS级别

您的应用程序连接到复制组节点而不是直接连接到主节点url / ip非常重要

您可以在中找到复制组端点 ElastiCache - >复制组 - > (选择你的复制组)在底部有 节点组详细信息 主要终点 示例myReplicationGroup.8asdas.ng.0001.use1.cache.amazonaws.com:6379

如果发生故障转移,则会出现一些停机时间。根据我的经验,它不到1分钟。

失败的节点回来后,它可能会成为辅助节点,并且如果启用了多可用区则保持不变

答案 1 :(得分:0)

当任何节点出现故障时,一切都在发生,没有任何干预。您也不需要为此故障转移编写任何代码。您所要做的就是使用Redis Elasticache集群的DNS名称而不是其IP。
例如,假设您有1个主服务器和2个服务器。当主设备发生故障时,新的从设备将被自动选为主设备,AWS将更改主设备的DNS以指向成为新主设备的从设备IP。它还将旋转一个新的从属设备,取代转换为主设备的设备,并更新从设备的DNS记录以指向新的IP地址。因此,您不必担心任何事情,因为主机名保持不变,只有它们背后的IP才会发生变化。在这里,您可以找到更多详细信息,了解幕后发生的事情:Auto Failover for Amazon ElastiCache for Redis