首页 > 解决方案 > ioredis:如何在与默认 6379 端口不同的端口上运行 Redis 服务器?

问题描述

我看过这个问题:How to start redis-server on a different port than the default port 6379 in ubuntu 我试图ioredis在我的NestJS项目中做到这一点,但它拒绝连接到 6379 以外的任何其他端口。我'没有运行任何单独的 Redis 服务器,我将其留给ioredis. 只是我想为测试目的运行一个单独的实例,该实例不在端口 6379 上运行。

以下代码运行没有错误:

const redis = new Redis();
const redis = new Redis('localhost');
const redis = new Redis(6379);

我可以做我需要做的一切。

但是,此代码:

const redis = new Redis(6380);
const redis = new Redis(6380, 'localhost');

给我以下错误:

[ioredis] Unhandled error event: Error: connect ECONNREFUSED 127.0.0.1:6380
    at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1141:16)

我必须使用不同的ioredis实例化选项吗?或者可能是 NestJS 的东西?因为我知道 NestJS 在 Redis 上有一个页面:https ://docs.nestjs.com/microservices/redis ,但他们也指定了端口 6379。为什么我似乎无法让ioredisAPI 文档中的基本示例正常工作?

标签: typescriptredisnestjsioredis

解决方案


似乎已经有一个 redis docker 实例在 :::6379 上的本地网络上运行,占用了任何地址的端口号,在我不知道的情况下......这对这个问题来说是一个非常尴尬的答案,但问题是反正错了,为什么不坚持下去。

ioredis不会为您启动服务器,它只是一个客户端。既然我的测试成功了,我以为ioredis也启动了一个服务器,但这完全是一个巨大的误解。


推荐阅读