在复制的Redis群集中连接到主服务器和从服务器

时间:2016-10-24 14:25:47

标签: node.js redis node-redis

我正在设置一个简单的1 Master-N Slaves Redis集群(低写入循环,高读取计数)。如何设置它在Redis网站上有详细记录,但是,没有关于客户端(在我的情况下是Node.js服务器)如​​何处理集群的信息(或者我错过了它)。我的服务器是否需要打开2个Redis连接:一个用于Master(写入),另一个用于Slave负载平衡器用于读取? Redis驱动程序是否自动处理此操作并将读取发送到从属服务器并写入主服务器?

2 个答案:

答案 0 :(得分:1)

我发现的唯一方法是使用thunk-redis库。该库支持连接到Redis master-slave,而无需配置集群或使用哨兵。

您只需将多个IP地址添加到客户端:

const client = redis.createClient(['127.0.0.1:6379', '127.0.0.1:6380'], {onlyMaster: false});

答案 1 :(得分:0)

您不需要专门连接到特定实例,redis群集中的每个实例都有群集信息。因此,即使您连接到一个主服务器,您的客户端也将连接到群集中的任何实例。因此,如果您尝试更新不同主服务器中存在的密钥(除了您连接的密钥之外),redis客户端将使用服务器提供的重定向来处理它。

要回答第二个问题,您可以通过READONLY命令

启用从属设备的读取