我们当前有一个使用redis(AWS elasticache)的服务,该服务具有几个副本节点,并且禁用了集群模式。在这种情况下,我们如何实现只读副本并读写主节点?
golang中是否有相同的好的库?我可以找到几个库,但是它们都旨在启用集群模式。
答案 0 :(得分:0)
我们要做的是使用route53创建指向“主要端点”的“写入” URL,如果出现问题,该URL将故障转移到当前的主要节点。这样,您就不必在应用程序中对其进行更新。然后,将所有节点轮流放置在“读取” URL下。
除非进行大量读取和不频繁写入,否则通常不需要访问读取(从副本)并在同一应用程序中写入。然后,您可以在代码中维护两个Redis客户端实例。不优雅,但有效。
如果使用加权轮循,则可以降低当前主数据库上的读数。只需知道何时发生故障转移事件即可对其进行更新。
将写入网址上的TTL设置为较低的值,例如1分钟或更短的时间。