我正在使用 node-redis 和 AWS Elasticache,但禁用了集群模式。我有 1 个主节点和两个副本节点。
我的副本节点根本不提供读取服务。这可以在 Elasticache 的指标选项卡中看到,并且非常清晰。
Redis 文档指出可以使用 READONLY 命令 开始从副本节点读取。 node-redis 中唯一提到此功能的是在其客户端配置文档中,使用
readonly
标志(默认为 false)。这是用来打开新连接的。
我们的服务器当前维护单个Redis连接,并使用它来发出所有读取和写入。该文档是否建议我应该在每个命令之前打开一个新连接(创建客户端),并根据我的命令是读取还是写入来设置此
readonly
标志?我觉得我应该能够保持连接打开并在每个命令的基础上指定 readonly
以避免不断打开和关闭连接。
如果我只能在连接级别设置
readonly
,那么与 Redis 交互的最佳方式是什么?
readonly
命令适用于 Redis 集群,不适用于独立的 Redis。所以它不能解决你的问题。
相反,您可以创建两个连接:一个用于写入(连接到主服务器),另一个用于读取(连接到其中一个副本)。