gpt4 book ai didi

node.js - AWS Redis Reader 端点和 ioredis

转载 作者:行者123 更新时间:2023-12-04 04:18:14 26 4
gpt4 key购买 nike

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

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

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

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

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

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

最佳答案

只记下它是如何结束的

我们有两个实例(如果 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 提供的,仅此而已)。

这是我们的配置

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

scaleReads 的选项是

scaleReads is "master" by default, which means ioredis will never sendany queries to slaves. There are other three available options:

"all": Send write queries to masters and read queries to masters orslaves randomly. "slave": Send write queries to masters and readqueries to slaves.

https://github.com/luin/ioredis

关于node.js - AWS Redis Reader 端点和 ioredis,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60095059/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com