使用nodejs将读写拆分为redis

问题描述

我在三个单独的实例上设置了 redis,并以这样的方式配置了它们:1 个实例是主实例,2 个实例是主实例的副本。我已经使用哨兵来确保设置的高可用性。我有一个需要使用 redis 的 nodejs 应用程序。我如何在我的应用程序中实现读写拆分,因为如果我的 redis 主服务器出现故障,我的一个只读副本成为主服务器并且需要写入它。

解决方法

据我所知,ioredis 是唯一支持哨兵的节点 redis 客户端。

"ioredis 保证您连接的节点即使在故障转移后也始终是主节点。当发生故障转移时,ioredis 不会尝试重新连接到故障节点(当它再次可用时将降级为从节点),向哨兵询问新的主节点并连接到它。在故障转移期间发送的所有命令都会排队,并会在新连接建立时执行,这样任何命令都不会丢失。”