【问题标题】:How to connect to a redis database running in Docker如何连接到在 Docker 中运行的 redis 数据库
【发布时间】:2021-12-25 12:21:22
【问题描述】:

我正在尝试连接到在 Docker 中运行的 Redis 实例,该实例映射到端口 6379。我使用 Redis 库、打字稿和 express。但是,我什至没有收到错误。我做错了什么?

import { createClient } from 'redis'
const redisClient = createClient({ url: "redis://localhost:6379" });
redisClient.on('error', err => console.error(err))
redisClient.once('open', () => console.log("Connected to Redis"))

【问题讨论】:

    标签: node.js typescript redis


    【解决方案1】:

    可以通过监听ready事件来检查连接是否成功:

    redisClient.on('ready', () => {
        console.log('Connected to redis!');
    });
    

    来自redisnpm 页面:

    一旦建立连接,客户端将发出ready。在就绪事件之前发出的命令会排队,然后在此事件发出之前重放。

    【讨论】:

    • 这个也没有记录任何东西。如果我尝试写一些数据,我会得到“UnhandledPromiseRejectionWarning:错误:客户端已关闭”。
    • 我不知道您是否在 Dockerfile 中正确公开了端口。如果你愿意,你可以查看这个项目github.com/Ernyoke/stackoverflow-questions/tree/main/redis-node 我成功地连接到 redis 没有问题。
    • 感谢您的代码。我做的完全一样。如果我尝试从浏览器访问 URL,redis 会在 docker 中向攻击者发出警告,因此它已设置并启动。但是节点由于某种原因无法连接
    猜你喜欢
    • 2019-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-14
    • 2013-03-29
    • 1970-01-01
    • 1970-01-01
    • 2020-06-14
    相关资源
    最近更新 更多