问题标签 [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 回答
1289 浏览

node.js - 我正在尝试从 heroku 连接到在线 redis 服务器,但我的连接被拒绝

我正在为 Node.js 使用 Redisioredis[ioredis] Unhandled error event: Error: connect ECONNREFUSED 127.0.0.1:6379 at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1106:14) Redis Error: { ReplyError: NOAUTH Authentication required.(这是我的代码

请问我该如何解决这个问题?还有为什么我仍然得到这个Error: connect ECONNREFUSED 127.0.0.1:6379

PS Redis 在我的本地主机上完美运行

0 投票
0 回答
610 浏览

node.js - 为什么 redis-benchmark 性能与实际应用程序基准测试不同

上述基准提供每秒 19k 的请求

但是我的 Nodejs Benchmarking for 'set' 命令每秒只提供 10k 请求

那么,与我的 nodejs 应用程序每秒 10k 请求相比,为什么 redis-benchmark 每秒有 19k 请求?

0 投票
1 回答
871 浏览

node.js - Hapi catbox 无法连接到 redis 服务器

首先,我想说我是 Hapi 的新手,所以不要过分评价我。

我正在按照本教程catbox尝试使用和包设置基于 Redis 的服务器端缓存catbox-redis npm,但出现以下错误:

如您所见,它说错误在ioredis(根据 package-lock.json 的 v4.14.1)包中,它是catbox-redis.

我在本地运行 Redis 服务器。

这是我的package.json

这是我的src/index.ts

任何想法我做错了什么?我在这个问题上花了很多时间,所以任何帮助都将不胜感激。

0 投票
1 回答
199 浏览

javascript - 如何在 Redis 客户端中安全地设置过期时间?

我遇到了奇怪的麻烦,我必须redis在给定的毫秒后设置密钥过期。在我做了以下几项工作后没有问题:

现在过期哪个 redis 支持在 Seconds 中,现在我目前正在从事的整个项目使用 MilliSecond 库短 MS(https://www.npmjs.com/package/milliseconds)。

如何安全地将每毫秒转换为 redis 客户端可以支持的秒?

笔记:

假设如果客户端请求密钥在 15 秒内过期而不是分钟格式,它将像 0.14 那样 redis 客户端不支持 [将发生超出范围错误]。请任何人都可以帮助我做一些可以将毫秒转换为秒的冗余操作,以保持密钥必须过期的时间。

还是我错过了什么?

0 投票
1 回答
978 浏览

node.js - AWS Redis 读取器端点和 ioredis

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

我正在尝试使用这个新的 Reader 端点: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 实例,并将所有写入发送到主端点,并将所有读取发送到 Reader 端点。但是,我更喜欢一些更好(或经过良好测试)的方法。

PS:我试图用 的Cluster功能“破解它” ioredis,但即使是没有任何功能的简单连接和一个 - 主要端点 - 失败ClusterAllFailedError: Failed to refresh slots cache. (启用阅读器端点 - 集群模式必须关闭)

0 投票
1 回答
2290 浏览

node.js - 尝试使用 ioredis nodejs 模块使用密码连接到哨兵时出错

我正在尝试使用 ioredis 连接到我在 docker 下的哨兵服务,这需要在我的配置中输入密码。这是我的代码:

但它没有成功。这是激活 DEBUG=ioredis 时的日志:

根据日志,我看到我的redis客户端可以连接到sentinel,它也在sentinel模式下找到了真正的redis服务器并选择了数据库。我得到了redis已连接的日志,但在那之后,连接被关闭了。我在哪里失踪?

PS:我还添加了配置 snetinel-annouce-ip,以防我的 redis 客户端无法识别哨兵的 ip,但在日志中,它得到了良好的私有 ip:192.168.0.35。

谢谢你的帮助。

0 投票
0 回答
495 浏览

node.js - 无法将工作进程附加到 Bull Queue

我一直在为我们的项目广泛使用 Bull 库。几天前,我们在处理 Bull Queue 的作业时发现了这个问题。我们能够在 Bull Queue 中添加作业,但它无法处理该作业。当我签入工作组时,我们注意到作业延迟/失败,错误响应为空。我认为这是因为工作进程没有附加到队列中。如果我在一段时间后尝试重新启动进程,则相同的代码可以正常工作。我不确定这是 Redis 或 Bull 的问题还是我使用它的方式。问题是我可以添加作业,但作业未处理。(仅在某些情况下出乎意料)

示例代码片段:

我如何使用它:

包装清单:

0 投票
2 回答
5779 浏览

node.js - 使用 Nodejs 配置 Redis TLS

我正在使用 ioRedis 节点包将我的节点 js 应用程序连接到由 TLS 保护的 redis 服务器。我使用的 Redis 版本是 Redis 6.0。我的服务器使用证书运行良好,但是从节点应用程序连接时出现错误。

nodejs应用程序端的错误是

尝试从 nodejs 应用程序连接时服务器出错

17:29:44.295 # Error accepting a client connection: error:1408F10B:SSL routines:ssl3_get_record:wrong version number

目标只是与 TLS 安全建立 redis 连接。

0 投票
1 回答
1964 浏览

javascript - 为什么启用keep-alive时ioredis客户端超时?

当我的脚本闲置一段时间时,我收到以下错误。我无法理解这其中的原因。

我将我的 redis 客户端初始化为:

我正在使用ioredis 客户端

有谁知道这是什么原因?按照这里的建议https://github.com/luin/ioredis/blob/master/API.md已经默认启用了 keep-alive

如果发生超时,我希望客户端永远不会超时并重新连接。我正在使用 Azure 的 Redis 服务。

0 投票
1 回答
914 浏览

node.js - 当从 AWS ElastiCache Redis 中“获取”时,nodejs 中的 ioredis 什么都不做

我在 ECS 上托管的 nodejs 容器中运行以下代码。这在本地使用 redis 运行良好。在 AWS 中,它似乎可以连接(如果我使用无效地址,它会在连接时出错,所以我假设它已连接)。当我跑步时,redis.get(什么也没有发生。我已经为 ioredis 启用了调试,当我尝试获取时收到 1 条消息:

这是代码

我已确认安全组,ElastiCache 与我的 ECS 容器位于同一 VPC 中。我能做些什么来解决这个问题?

更新 我换了ioredisredis它仍然发生,nada ...