问题标签 [ioredis]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
684 浏览

redis - 如果初始连接中的集群节点死亡,ioredis 客户端可以继续工作吗?

使用 ioredis ( https://github.com/luin/ioredis ) 连接到 redis 集群时,您只需要指定一个节点,例如使用三节点集群

127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002

您可以使用简单的连接:

如果 :7000 节点死亡并且您将其替换为不同的节点,则执行以下操作:

ioredis 是否能够继续工作(接受来自 :7000 的数据丢失),是否需要再次联系 127.0.0.1:7000 还是仅用于初始连接?

从我的实验看来,这种情况确实有效,我的问题的答案是肯定的,但我想检查这是预期的和受支持的情况。

0 投票
1 回答
1711 浏览

node.js - 使用 ioredis 订阅多个频道

我有一个带有节点socket.ioioredis通过节点的广播服务器。

但是,以我目前的形式,我一次只能订阅一个频道。

考虑到我必须有无数的频道(例如,每个注册用户一个),我不能硬输入节点服务器上的每个频道。

我也尝试过redis.subscribe('*'),但没有成功。

有光吗?

0 投票
0 回答
584 浏览

sockets - Socket.io 和 ioredis 与 SSL 的连接

我正在尝试在托管在 SSL 环境中的应用程序中创建用于发送消息或通知的连接。这是我的套接字文件的样子:

在客户端,我正在做这样的事情:

我不断收到此错误net::ERR_CONNECTION_REFUSED。我尝试遵循其他 stackoverflow 的一些建议。但仍然无法解决。

任何建议都会有所帮助!

先感谢您)!

0 投票
1 回答
479 浏览

node.js - 并发请求覆盖 ​​Redis 中的数据

场景:当请求到来时,我需要连接到 Redis 实例,打开连接,获取计数,更新计数并关闭连接(对于每个请求,这就是流程)。当请求按顺序出现时,即 1用户一个接一个地发送 100 个请求,然后 Redis 中的计数为 100。

问题:问题是并发请求何时到来。即 10 个用户同时发送 100 个请求(每个用户 10 个请求),那么计数不是 100,而是大约 50。

示例:假设 Redis 中的 count 为 0。如果同时有 10 个请求,则将打开 10 个连接,所有 10 个连接将获取 count 值为 0 并将其更新为 1。

分析:我发现,随着请求同时到来,多个连接正在获取相同的计数值并更新它,因为计数值被覆盖。如果您已经遇到此问题,任何人都可以建议避免此问题的最佳方法。

这里我们使用 Hapijs、Redis 3.0、ioredis

0 投票
1 回答
533 浏览

redis - 一个redis集群可以支持的最大master数

我浏览了 redis 集群文档,上面写着 redis 集群中有 16384 个插槽(启用了集群模式)。这是否意味着集群中最多只能有 16384 个主节点?

如果是,那么我们如何扩展超过 16384 个主节点?

如果不是,那么它将如何工作,因为至少一对两个 master 将被分配相同的哈希槽?

0 投票
1 回答
3599 浏览

node.js - 无法通过节点应用程序连接到redis,都在dockers中

我正在尝试将我的应用程序连接到 redis,但我得到:

[ioredis] Unhandled error event: Error: connect ECONNREFUSED 127.0.0.1:6379

当我做:

docker exec -it ed02b7e19810 ping test_redis_1 我已收到所有数据包。

redis容器还声明:

* Running mode=standalone, port=6379

* Ready to accept connections

(我收到警告,但我不认为它相关:

Warning: no config file specified, using the default config. In order to specify a config file use redis-server /path/to/redis.conf

WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128

这是我的 docker-compose.yaml:

DockerFile

应用程序.js

我也尝试过使用redis包但仍然无法连接:

得到:

0 投票
1 回答
1826 浏览

redis - AWS 上的 Redis 集群在 connect-redis 和 ioredis 上的配置

我在 AWS (ElastiCache) 上配置了一个 Redis 集群。

它有一个配置端点和 6 个节点(3 个分片)。

在这里阅读 npm 模块的文档时,它说您必须合并 ioredis 才能使其适用于 Redis 集群。

我分享了下面的配置,它适用于单个 Redis 节点,但不适用于集群

我的问题是 - 我如何合并 ioredis 来支持集群?

这对我来说是一个巨大的障碍,所以任何帮助都将受到高度赞赏。

在网上找了一个例子,一无所获!

0 投票
1 回答
1159 浏览

redis - Redis-Cluster READONLY - 读取操作如何负载平衡?

我正在建立一个 Redis 集群。

我的理解是,如果我有一个 6 节点集群(3 个主节点,每个主节点有一个从节点),默认情况下,所有读取和写入都将发生在主节点上。如果任何一个 master 失败,那么一个 slave 将被提升为 master。

我希望能够允许奴隶也进行一些阅读(如果阅读有点陈旧也没关系)。

我看到集群规范支持该READONLY标志。听起来我可以用它来完成我想要的。https://redis.io/commands/readonly

我的问题是,如果我有一个主节点和一个从节点,它们都可以执行读取操作,那么如何决定哪个节点(主节点或从节点)负责完成读取操作?这是某种循环方法吗?是否由客户决定?如果有帮助,我将使用 ioredis 作为我的客户:https ://github.com/luin/ioredis

0 投票
1 回答
1030 浏览

node.js - ioredis pub/sub 没有在听,尽管它已连接

ioredis (v3.2.2) 似乎没有在听我的 Redis 发布/订阅事件,我不知道为什么

我正在启动一个侦听传入消息的服务器,如下所示:

当我运行上述内容时,日志输出显示:

当我将消息发布到 redis 服务器的队列中时,日志输出显示:

所以:我清楚地连接到服务器并接收数据,但我不明白:

  1. 为什么monitor回调没有记录 PSUBSCRIBE 或 PUBLISH 事件,这可能是为什么:
  2. pmessage回调函数没有被触发

有什么建议么?

0 投票
1 回答
2901 浏览

node.js - 带有节点 js 的 AWS ioredis

我必须连接到 AWS 中的 redis 集群。任何人都可以指导如何使用 ioredis 和节点 js 连接到 redis 集群。将有 1 个 master 和 3 个 slave。提前致谢。