Node-redis: 使用没有主机和端口的选项对象创建 redis 客户端。

创建于 2019-03-16  ·  18评论  ·  资料来源: NodeRedis/node-redis

即使没有运行本地服务器,此代码也可以正常运行。 这是正确的行为还是错误?

const redis = require('redis')
const redisClient = redis.createClient({ retry_strategy: () => 1000 })
  • 版本:2.8。
  • 平台:Node.js 10.15.3 Mac OS X Mojave、Node.js 11 alpine、Node.js 10.15.3 alpine
  • 描述:使用没有主机和端口的选项对象创建 redis 客户端。
Evaluating

所有18条评论

@mikhailsidorov - 是的,这是正确的,因为默认选项分别是'localhost'6379

哦,但您是说没有运行本地 Redis 服务器? 哈哈哈
现在这将是非常奇怪的。

我保证你仍然有一个 Redis 实例在运行……转到你的 linux 命令行控制台。

查看所有运行的Redis实例
ps -aux | grep redis-server

杀死所有 Redis 实例
killall redis-server

关闭票?

我在docker中运行它,没有redis。 让我再检查一下。

Redis 必须在某个地方运行,我在我的环境中尝试过并运行/etc/init.d/redis-server stop 。 第一次完全按照你说的做,因为我很困惑! 然后我运行ps -aux | grep redis-server发现我有七个 Redis 实例在后台运行,哈哈。 全部杀完后,node redis 马上就按预期报错了。

@mikhailsidorov - 是的,这是正确的,因为默认选项分别是'localhost'6379

哦,但您是说没有运行本地 Redis 服务器? 哈哈哈
现在这将是非常奇怪的。

我保证你仍然有一个 Redis 实例在运行……转到你的 linux 命令行控制台。

查看所有运行的Redis实例
ps -aux | grep redis-server

杀死所有 Redis 实例
killall redis-server

关闭票?

我的机器和 docker 容器中没有 redis-server 进程。 另外,我没有任何进程侦听 6379 端口( netstat -an | grep 6379返回任何内容)。

Redis 必须在某个地方运行,我在我的环境中尝试过并运行/etc/init.d/redis-server stop 。 第一次完全按照你说的做,因为我很困惑! 然后我运行ps -aux | grep redis-server发现我有七个 Redis 实例在后台运行,哈哈。 全部杀完后,node redis 马上就按预期报错了。

我没有找到运行 redis-server 的任何进程。

我准备了一个重现问题的例子,请看这个 repo https://github.com/mikhailsidorov/redis-issue
这段代码运行没有任何错误,我没有在测试机器和 docker 容器上运行 redis-server 进程。

您是否有机会运行 redis-mock 或类似的东西? (怀疑,只是检查......)
https://github.com/faeldt/redis-mock

这是我关闭 Redis 并运行我的应用程序时收到的错误...(这不是您提供的 docker 应用程序)我需要设置 docker,我仍然没有使用 docker,我必须与时俱进。 稍后会尝试......

Error: Redis connection to 127.0.0.1:6379 failed - connect ECONNREFUSED 127.0.0.1:6379
    at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1054:14)
Emitted 'error' event at:
    at RedisClient.on_error (/mnt/c/indospace.io/services/node_modules/redis/index.js:406:14)
    at Socket.<anonymous> (/mnt/c/indospace.io/services/node_modules/redis/index.js:279:14)
    at Socket.emit (events.js:196:13)
    at emitErrorNT (internal/streams/destroy.js:91:8)
    at emitErrorAndCloseNT (internal/streams/destroy.js:59:3)
    at processTicksAndRejections (internal/process/task_queues.js:84:17)

您是否有机会运行 redis-mock 或类似的东西? (怀疑,只是检查......)
https://github.com/faeldt/redis-mock

这是我关闭 Redis 并运行我的应用程序时收到的错误...(这不是您提供的 docker 应用程序)我需要设置 docker,我仍然没有使用 docker,我必须与时俱进。 稍后会尝试......

Error: Redis connection to 127.0.0.1:6379 failed - connect ECONNREFUSED 127.0.0.1:6379
    at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1054:14)
Emitted 'error' event at:
    at RedisClient.on_error (/mnt/c/indospace.io/services/node_modules/redis/index.js:406:14)
    at Socket.<anonymous> (/mnt/c/indospace.io/services/node_modules/redis/index.js:279:14)
    at Socket.emit (events.js:196:13)
    at emitErrorNT (internal/streams/destroy.js:91:8)
    at emitErrorAndCloseNT (internal/streams/destroy.js:59:3)
    at processTicksAndRejections (internal/process/task_queues.js:84:17)

不,我不使用 redis-mock。 当我在没有选项的情况下运行const redisClient = redis.createClient()时,我遇到了同样的错误,但是当我通过{ retry_strategy: () => 1000 }我遇到了这个问题。

哦,好吧,认为我们现在在同一页上......

是的,目前 node_redis重试连接/重新连接代码似乎完全被破坏了,有很多关于这些问题的未解决的票证。 今晚我在其他 nodeJS 模块上提交了 PR 请求,我会尝试深入研究并尽可能提交有效的 PR。

哦,好吧,认为我们现在在同一页上......

是的,目前 node_redis重试连接/重新连接代码似乎完全被破坏了,有很多关于这些问题的未解决的票证。 今晚我在其他 nodeJS 模块上提交了 PR 请求,我会尝试深入研究并尽可能提交有效的 PR。

谢谢

这多少有些刻意。 检查connect_timeoutDefault is to try connecting until the default system socket timeout has been exceeded and to try reconnecting until 1h has elapsed.

目的是拥有一个非常强大的功能,所有重新连接逻辑都掌握在用户手中。 不过,它可能并不总是理想的。

这多少有些刻意。 检查connect_timeoutDefault is to try connecting until the default system socket timeout has been exceeded and to try reconnecting until 1h has elapsed.

目的是拥有一个非常强大的功能,所有重新连接逻辑都掌握在用户手中。 不过,它可能并不总是理想的。

谢谢你的澄清。

@mikhailsidorov - 关闭问题?

@knoxcard我想在我找到一些时间时让自己保持开放,以便再次研究这个问题。

@knoxcard 顺便感谢您在这里调查几个问题! 您是否有兴趣提供更多帮助?

@BridgeAR - 绝对! 我应该如何提供更多帮助?

@mikhailsidorov - 关闭问题?

当然,如果需要的话。 谢谢

@mikhailsidorov -

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

abhaygarg picture abhaygarg  ·  5评论

jackycchen picture jackycchen  ·  4评论

Mickael-van-der-Beek picture Mickael-van-der-Beek  ·  6评论

dotSlashLu picture dotSlashLu  ·  5评论

michaelwittig picture michaelwittig  ·  3评论