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

node.js - 如何包装 ioredis 包以测量每种方法的响应时间?

我想为我的服务提供插件,该插件将测量对 redis 的每次调用并发送带有响应时间的指标。

我该如何包装 ioredis 来做到这一点?

我想使用代理,但它只适用于异步(承诺)方法。

0 投票
2 回答
1843 浏览

testing - 使用 NestJS 队列时关闭 redis 连接

我正在尝试在 NestJS 项目中设置 E2E 测试,但是,jest 输出如下所示:

经过大量阅读,这是因为有一些资源尚未释放,经过一些调试后,它打开了一个到 redis 的连接,由ioredis它创建,bull由 NestJS 使用它来执行任务队列处理。问题是我在测试代码中没有对连接的引用,那么我该如何关闭它呢?afterAll我正在像这样在开玩笑的钩子中拆除 Nest 应用程序:

但它什么也没做,连接仍然存在,开玩笑的错误消息仍然存在。我知道我可以将其添加--forceExitjest命令中,但这并不能解决任何问题,它只是将问题隐藏在地毯下。

0 投票
0 回答
648 浏览

laravel - Laravel-echo-server、Redis 和 Ubuntu 18.04.4 [ioredis] 错误:连接 ETIMEDOUT

我希望有人可以帮助我解决这个问题:

我的 laravel 项目(7.x)在本地环境(带有 redis 的 Laragon 4.0)上没有问题广播。我想实时移动它,以便使用 Ubuntu 18.04.4、apache2、virtualmin cp 在我的 VPS 上进行更准确的测试。

我确实安装了redis服务器(最新版本)并且正在运行(PING-> PONG,创建键->值,读取键->值...重新启动服务并且键->值仍然存在...所有测试都运行良好)。当我触发我的事件并广播一些东西时,我会在队列中看到它:定期工作,但是每次我启动 LARAVEL ECHO SERVER 并且客户端连接非常快,几秒钟后我开始在控制台中收到此错误:

我在这里检查了关于 stackoverflow、laracasts 的每一篇文章以及提到这个错误的所有地方,但我找不到解决方案。我的 .env 文件感兴趣的部分在这里:

这是广播.php

我的数据库.php

我的 laravel-echo-server.json

}

防火墙上的端口应该是打开的,我发现服务正在侦听它们的端口。

我真的不知道还能做什么,请如果有人可以帮助我,因为我老了,我想在退休前解决它:)

谢谢,

西蒙娜

更新

我确实在 unixsocket 上配置了 Redis 并避免了网络问题,现在运行良好。

0 投票
1 回答
1350 浏览

node.js - ioredis mset() 是否像设置操作一样接受设置到期的选项?

这是我的代码:

问题是mset操作是否接受TTLset命令一样设置的选项?

// 集合样本

0 投票
1 回答
3110 浏览

node.js - Redis 连接处于断开状态:超出连接超时。可能已经处理过 Nodejs + Async-redis

我正在尝试连接到 AWS redis 弹性缓存,但我一直收到此错误。我不确定我在这里做错了什么,非常感谢任何帮助。这是我的代码

0 投票
0 回答
241 浏览

javascript - 收到消息后如何移除redis监听器

我正在订阅外部套接字以从套接字 api 获取数据,然后我将发布到 redis,如下所示。我得到maximum event emitter listeners exceeded errorredis.on。我无法将redis移到套接字之外,那样我将无法向套接字发送订阅数据所需的数据。如何解决这个问题?.我可以删除 on 事件中的 redis listneer 吗?

0 投票
0 回答
123 浏览

javascript - 如何在nodejs脚本中等待ioredis库的“设置”功能?(我认为回答者不需要知道ioredis。)

让我把我的 node.js 脚本放在下面。

它失败了,因为 redis.disconnect() 调用可能在 redis.set() 调用完成之前完成。

如何让 redis.disconnet() 等到所有“set()”调用完成?

我需要调用 redis.disconnect() 因为我希望脚本在终端完成时关闭。(例如节点 myscript.js -x1)

https://github.com/luin/ioredis

0 投票
4 回答
6100 浏览

redis - 回复错误:连接到 Redis 集群 AWS 后出现 MOVED 错误

我正在构建一个连接到 redis 的 nodejs 应用程序。我有这个与我的本地redis实例一起工作。现在,我正在使用ioredis从我的 nodejs 应用程序连接到 AWS 中 k8s 中的 redis 集群。这就是我所拥有的。

connected to redis当消息打印在日志中时,似乎我成功连接到我的集群。但是,每次我尝试使用我的 redis 对象时,都会收到 MOVED 错误:

该连接适用于我的本地。但是在 AWS 中却没有。我尝试使用Redis.Cluster对象而不是 进行交换Redis,但是在部署应用程序后,应用程序挂起并且连接事件永远不会触发。和事件似乎无限循环closereconnecting

据我了解,这是集群中节点之间重定向的问题。可能是主/从配置的问题。该错误是 AWS 中的配置问题吗?我需要使用Redis.Cluster对象而不是普通Redis实例吗?修复 MOVED 错误的最佳方法是什么?

0 投票
0 回答
470 浏览

node.js - 如何从 Sentinel 获取 Redis 主机的主机名

我正面临 Sentinel TLS 的问题。所以问题出在后台我有一个节点应用程序试图使用哨兵连接到 Redis。当我们向哨兵请求主地址时,它返回的是 IP 而不是 HOSTNAME,因此节点正在尝试连接 IP,服务器返回错误,指出 IP 与证书不匹配。

如何从哨兵获取主机名?还是我需要在节点模块将 IP 转换为名称?

我发现https://redis.io/topics/sentinel哨兵不允许在配置中使用主机名。

0 投票
0 回答
839 浏览

node.js - Redis cli 工作 - 两者都不是任何 NodeJS Redis 客户端

  1. 我已按照本指南:https ://redislabs.com/blog/redis-on-windows-10/安装以下内容:Windows 子系统、Ubuntu 和 Redis 服务器,一切似乎都可以通过 Ubuntu 终端和Windows 中的 redis-cli。我可以设置和获取值。但是我的 NodeJS 客户端无法工作/无法连接(只有第一次?)。

  2. 我已经安装了以下 NPM Redis 客户端:redis ( https://www.npmjs.com/package/redis )。

第一次成功(它可以设置和读取名为“key”的密钥)!但从那以后再也没有!?我尝试关闭并打开 Ubuntu 终端,重新启动 redis 服务器等,但似乎没有任何帮助。redis-cli 一直在 ubuntu 终端上工作——只有 NodeJS 客户端突然不工作了。

  1. 我还尝试安装另一个客户端:https ://www.npmjs.com/package/ioredis但问题仍然存在并且是相同的。我这样连接这个客户端:

再次,它第一次与第一个 Redis 客户端一起工作,我没有设置任何身份验证/凭据......

  1. 我没有更改默认 conf 文件中的任何一行。

  2. 我刚刚尝试安装 Ubuntu 20.04(在我运行 18.04 之前)并再次从头安装 Redis - 但结果是一样的:Redis cli 工作,但没有一个 NodeJS 客户端(现在甚至不是第一次)。

它会在我捕捉到“重新连接”和“连接”事件之后立即引发异常 - 然后它会一遍又一遍地循环运行这些步骤。所以它似乎能够连接但之后立即断开连接?

6a。我收到此错误消息(NPM:Redis):

6b。或者现在我在使用 NPM 时收到此错误消息:ioredis:

  1. 我的整个 Redis 日志如下所示:

14151:C 09 Nov 20:32:56.542 # oO0OoO0OoO0Oo Redis 正在启动 oO0OoO0OoO0Oo 14151:C 11 月 9 日 20:32:56.543 # Redis 版本=4.0.9, bits=64, commit=00000000, modified=0, pid=14151,刚开始 14151:C 11 月 9 日 20:32:56.543 # 配置已加载