我使用的是node-redis和禁用了集群模式的AWS ElastiCache.我有一个主 node 和两个副本 node .

我的副本 node 根本不提供读取服务.这可以在Elasticache的metrics选项卡中看到,并且非常清楚.

Redis文档说明,READONLY command can be used开始从副本 node 读取.Node-redis中唯一提到该功能的是在其client configuration documentation中,使用readonly标志(缺省为FALSE).这是用来打开新连接的东西.

我们的服务器currently维护单个Redis连接,并使用该连接发出所有读写操作.本文档是否建议我应该在每个命令之前打开一个新连接(创建客户端),并根据我的命令是读命令还是写命令来设置这个readonly标志?我觉得我应该能够保持连接打开,并在每个命令的基础上指定readonly,以避免不断打开和关闭连接.

如果我只能在连接级别设置readonly,那么与Redis互动的最佳方式是什么?

推荐答案

readonly命令适用于Redis集群,而不是独立的Redis.所以它不能解决你的问题.

相反,您可以创建两个连接:一个用于写入(连接到主服务器),另一个用于读取(连接到副本服务器).

Node.js相关问答推荐

使用OpenAI API时遇到问题

如何将我的Redis客户端配置为在禁用群集模式的情况下使用读取副本?

为什么我收到此错误:MissingSchemaError:架构尚未为模型&业务&注册

获取页面大小为10的所有文章,每篇文章填充一些所需的用户信息

如何防止Socket-io实例化React/Next.js中的两个套接字(当前在服务器*和*客户端实例化)

Socket.io 未将用户加入给定房间

使用单个 MongoDB 查询更新多个元素

Prisma,只有一个用户的行可以有真值,@@unique(userId, isActive)

express cors request.body formData显示undefined

如何修改这个flake.nix,这样我就不用每次加载环境都加载nix包了

MongoDB Atlas中的聚合触发器不起作用

WSL2 上需要脚本运行的 NPM 包的权限被拒绝

当我使用 uuid 代码意外崩溃,然后工作正常?

Node.js 变量声明和范围

适用于 Windows 7 的 NodeJS

如何运行用 TypeScript 编写的 Mocha 测试?

TypeError:请求路径包含未转义的字符,我该如何解决这个问题

create-react-app,安装错误(找不到命令)

nodeJS - 如何使用 express 创建和读取会话

`return function *(){...}` 是什么意思?