当前位置: 首页 > 知识库问答 >
问题:

AWS Redis读卡器endpoint和ioredis

戎永福
2023-03-14

我们希望我们的Redis更具可扩展性,并且能够添加更多的读取实例。

我正在尝试使用此新的读卡器endpoint:https://aws.amazon.com/about-aws/whats-new/2019/06/amazon-elasticache-launches-reader-endpoint-for-redis

但是,我没有看到ioredis使用这种方法的任何简单或自动的方法,我可以设置哪个endpoint用于写入,哪个endpoint用于读取。即使在这里,我也可以看到最后推荐的方法是“手动拆分”:https://github.com/luin/ioredis/issues/387

您是否知道任何现有的解决方案或好方法,我可以在其中设置哪些endpoint将用于写入,哪些endpoint将用于读取?

现在对我来说最直接的是某种“代理”层,我将在其中创建两个Redis实例,并将所有写入发送到主endpoint,所有读取发送到Readerendpoint。然而,我更喜欢一些更好(或经过良好测试)的方法。

PS:我试图用ioredisCluster功能“破解它”,但即使是没有任何功能的简单连接和一个-主endpint-也无法使用ClusterAllFailedError:无法刷新插槽缓存(要启用阅读器endpoint-必须关闭集群模式)

共有1个答案

有睿
2023-03-14

只要记下它是如何结束的

我们有两个实例(或者如果URL相同,则重用同一个实例)

redis = new Redis(RKT_REDIS_URL.href, redisOptions)
if (RKT_REDIS_READER_URL.href === RKT_REDIS_URL.href) {
    redisro = redis
} else {
    redisro = new Redis(RKT_REDIS_READER_URL.href, redisOptions)
}

然后首先用于写入,其他用于读取。

 redis.hmset(key, update)
 redisro.hmget(key, field)

然而,过了一段时间,我们已经采用了集群redis,它要好得多,可以推荐。此外,ioredis npm模块能够轻松地使用它(您不必配置任何东西,只需将AWS提供的配置endpoint放在那里即可)。

这是我们的配置

redisOptions.scaleReads = 'master'
redis = new Redis.Cluster([RKT_REDIS_URL.href], redisOptions)

scaleReads的选项包括

ScaleReads默认为“master”,这意味着ioredis永远不会向从站发送任何查询。还有其他三个可用选项:

“全部”:随机向主机发送写查询,向主机或从机发送读查询。“从”:向主设备发送写查询,向从设备发送读查询。

https://github.com/luin/ioredis

 类似资料:
  • 问题内容: 我有一个IC接触式读卡器和SLE5528智能卡。想知道如何真正开始使用这些物品。 正在读取读取器,插入智能卡后看不到任何影响。 我还从http://www.openscdp.org/安装了opensmart的智能卡外壳 但是我不能用它来读任何读卡器。我想知道它是否有兼容性问题。 请我知道我可能不恰当地提出了这个问题,但是请那里的任何人帮助我。 任何相关的链接或有用的信息都可以帮助我入门

  • 我需要公开我的Redis ReplicationGroup的Reader Endpoint,以便它可以被依赖的云形成堆栈使用。 我以前使用过主endpoint,它可以作为CloudFormation返回值使用,但现在需要使用2019年6月引入的Readerendpoint[https://aws.amazon.com/about-aws/whats-new/2019/06/amazon-elast

  • 我开发了一个系统,可以使用带有PN532芯片的阅读器读取NFC标签。它工作正常。我可以阅读米费尔经典和米费尔超轻标签。 现在我想使用带有Android 4.4.2的Nexus平板电脑来模拟标签。我没有Android开发经验,但我认为这是可能的。 我已经在Nexus平板电脑中设置了NFC通信,但我想我必须下载或编写一些应用程序来模拟Tag和NDEF通信。 最简单的方法是什么?

  • 我已经实现了一个Andoid应用程序-服务器端应用程序。服务器与智能卡读卡器通信。当用户在Android应用程序中触摸按钮时,将构建一个连接到服务器以验证用户。应用和服务器之间交换的消息具有以下格式: 如果消息的类型值,则表明智能卡读卡器中存在错误 如果消息的类型值,则表明智能卡中存在错误 我使用如下代码与智能卡读卡器进行通信: 智能卡IO API具有异常的类。我的问题是,我不知道何时发送类型为或

  • 我有一个相当标准的生产者和消费者线程: producer将文件中的字节读取并解码到阻塞队列中 消费者正在轮询队列中的项目 碰巧解码过程是一个瓶颈,可能会受益于更多的CPU。这是制作人70%的时间。如果我引入“解码器”线程,我会获得任何显著的性能吗? 生产者从文件中读取字节到阻塞“对象”队列 由于内存不足,我需要使用一个队列——无法承受两个队列(字节/项),所以我猜对象“转换”开销会出现吗? 有没有

  • 我正在尝试使用NFC读卡器库读取Mifare超轻型卡的内容。 我对NFC完全陌生,我正在使用这个github存储库开始。 此存储库中的代码允许检测检测到哪种类型的卡(Mifare,Mifare超轻量级......)并读取卡的UID。我添加了以下代码以读取Mifare超轻型卡的内容: 我有一张卡片,上面写着“Hello world”,当我读到它时,上面的代码会打印以下字节: 所以我从我的卡片上读了一