我正在努力建立一个 Redis 集群。
我的理解是,如果我有一个 6 节点集群(3 个主节点,每个主节点都有一个从节点(,默认情况下,所有读取和写入都将在主节点上进行。如果任何主站失败,则从站将被提升为主站。
我希望能够允许奴隶也进行一些读取(如果读取有点陈旧也没关系(。
我看到集群规范支持READONLY
标志。听起来我可以用它来完成我想要的。https://redis.io/commands/readonly
我的问题是,如果我有一个主节点和一个从节点,两者都可以执行读取操作,如何决定哪个节点(主节点或从节点(负责完成读取操作?是某种循环方法吗?是由客户决定吗?如果有帮助,我正在使用碘化作为我的客户端:https://github.com/luin/ioredis
找到答案:这取决于您使用的客户端。对于Ioredis,选项记录在此处:
https://github.com/luin/ioredis#read-write-splitting