问题标签 [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.
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 还是仅用于初始连接?
从我的实验看来,这种情况确实有效,我的问题的答案是肯定的,但我想检查这是预期的和受支持的情况。
node.js - 使用 ioredis 订阅多个频道
我有一个带有节点socket.io
和ioredis
通过节点的广播服务器。
但是,以我目前的形式,我一次只能订阅一个频道。
考虑到我必须有无数的频道(例如,每个注册用户一个),我不能硬输入节点服务器上的每个频道。
我也尝试过redis.subscribe('*')
,但没有成功。
有光吗?
sockets - Socket.io 和 ioredis 与 SSL 的连接
我正在尝试在托管在 SSL 环境中的应用程序中创建用于发送消息或通知的连接。这是我的套接字文件的样子:
在客户端,我正在做这样的事情:
我不断收到此错误net::ERR_CONNECTION_REFUSED
。我尝试遵循其他 stackoverflow 的一些建议。但仍然无法解决。
任何建议都会有所帮助!
先感谢您)!
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
redis - 一个redis集群可以支持的最大master数
我浏览了 redis 集群文档,上面写着 redis 集群中有 16384 个插槽(启用了集群模式)。这是否意味着集群中最多只能有 16384 个主节点?
如果是,那么我们如何扩展超过 16384 个主节点?
如果不是,那么它将如何工作,因为至少一对两个 master 将被分配相同的哈希槽?
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
包但仍然无法连接:
得到:
redis - AWS 上的 Redis 集群在 connect-redis 和 ioredis 上的配置
我在 AWS (ElastiCache) 上配置了一个 Redis 集群。
它有一个配置端点和 6 个节点(3 个分片)。
在这里阅读 npm 模块的文档时,它说您必须合并 ioredis 才能使其适用于 Redis 集群。
我分享了下面的配置,它适用于单个 Redis 节点,但不适用于集群
我的问题是 - 我如何合并 ioredis 来支持集群?
这对我来说是一个巨大的障碍,所以任何帮助都将受到高度赞赏。
在网上找了一个例子,一无所获!
redis - Redis-Cluster READONLY - 读取操作如何负载平衡?
我正在建立一个 Redis 集群。
我的理解是,如果我有一个 6 节点集群(3 个主节点,每个主节点有一个从节点),默认情况下,所有读取和写入都将发生在主节点上。如果任何一个 master 失败,那么一个 slave 将被提升为 master。
我希望能够允许奴隶也进行一些阅读(如果阅读有点陈旧也没关系)。
我看到集群规范支持该READONLY
标志。听起来我可以用它来完成我想要的。https://redis.io/commands/readonly
我的问题是,如果我有一个主节点和一个从节点,它们都可以执行读取操作,那么如何决定哪个节点(主节点或从节点)负责完成读取操作?这是某种循环方法吗?是否由客户决定?如果有帮助,我将使用 ioredis 作为我的客户:https ://github.com/luin/ioredis
node.js - ioredis pub/sub 没有在听,尽管它已连接
ioredis (v3.2.2) 似乎没有在听我的 Redis 发布/订阅事件,我不知道为什么
我正在启动一个侦听传入消息的服务器,如下所示:
当我运行上述内容时,日志输出显示:
当我将消息发布到 redis 服务器的队列中时,日志输出显示:
所以:我清楚地连接到服务器并接收数据,但我不明白:
- 为什么
monitor
回调没有记录 PSUBSCRIBE 或 PUBLISH 事件,这可能是为什么: pmessage
回调函数没有被触发
有什么建议么?
node.js - 带有节点 js 的 AWS ioredis
我必须连接到 AWS 中的 redis 集群。任何人都可以指导如何使用 ioredis 和节点 js 连接到 redis 集群。将有 1 个 master 和 3 个 slave。提前致谢。