Node-redis: node_redis:警告:您将“redis”作为协议而不是“redis”协议传递!

创建于 2018-04-23  ·  22评论  ·  资料来源: NodeRedis/node-redis

node_redis: WARNING: You passed "rediss" as protocol instead of the "redis" protocol!

显示此警告是因为检查rediss:rediss是正确的 -第 35 行

pending-author-input

最有用的评论

大家好,我已接任首席维护者,现在拥有所有必需的访问权限🎉

在过去的几天里,我一直在为 master 的发布做准备,而在几分钟前,我刚刚将 v3.0.0 发布到 NPM; https://github.com/NodeRedis/node-redis/releases/tag/v3.0.0 - 其中包括此更改。

期待定期发布——我目前的首要任务是让这个项目对贡献者更加友好,以确保项目能够生存并继续发展,并且不会被任何人的时间所阻碍。 为此,我想培养更多的浅贡献者。 有了这个,我希望减轻项目需要更新的先前问题,但没有人有能力这样做。 我正在解决以下问题;

  • [x] 贡献文档和行为准则
  • [x] 设置开放集体和贡献者费用政策

    • 你会注意到 GitHub 顶部闪亮的新Sponsor按钮,我自己也继续赞助它,并通过我的公司帮助为任何未来的贡献者启动它

  • WIP:发布自动化和语义版本控制(发布到 NPM、生成变更日志等)
  • [x] 改进 CI,例如 Windows CI 现在超级慢且不稳定

之后,我将把注意力转移到 Node Redis 代码库中的现代化(例如 promise)和清除技术债务上。 @BridgeAR已经为此做了很多工作,如果您好奇,请查看 WIP v4 分支及其变更日志。

所有22条评论

redis 是错误的方式,因为 commond 做

该消息确实应该更新,但似乎您以某种方式通过了错误的协议。

您能否将您作为 args 传递给Redis.createClient()的内容显示出来(替换用户名/密码/具体 url),并保持所有内容与传递给 node_redis 的完全相同?

我遇到了同样的问题。 然后我意识到启用rediss作为协议的提交尚未发布。 最新版本2.8.0还没有这个提交: https ://github.com/NodeRedis/node_redis/commit/5d6e471d0c14df39974000427719c5d85fa4f21f

什么时候出新版? 我需要这个功能。

@BridgeAR @stockholmux @Salakar友好 ping。 这个警告可能需要一个新版本。

@Teamop不幸的是,我无权向 npm 发布任何内容 - 只有@BridgeAR可以。

我遇到了这个问题。 如果查看在线回购,我会看到 redis 的语句块。
https://github.com/NodeRedis/node_redis/blob/23ef1e7afadd6022526860d22ac0a7f78495106d/lib/createClient.js#L34

但是,当我检查我的实际 node_modules 文件夹时,版本说它是 2.8,但是 createClient 文件没有那个 redis 语句块。 我通过将 redis if 语句粘贴到我的本地节点模块中来进行本地修复,并且有效。 我不确定分布式版本与 repo 中在线显示的版本有何不同。
image

抱歉,我才意识到 2.8.0 是在 2017 年发布的,而不是 2018 年发布的,在 TLS 支持被添加到 master 之前

@BridgeAR我们为 2.8.0 拉下的内容实际上并不支持 TLS(即以“redis:”开头的 url)。 这才是真正的问题; 警告只是一个症状。 这里是 node 模块的来源:https://registry.npmjs.org/redis/-/redis-2.8.0.tgz 下载并查看 createClient.js。 缺少 TLS 代码

使用 TLS 支持有什么重要价值吗?

我很喜欢今天拥有它,它可以让我们与加密的身份验证 AWS ElasticCache

@jasonamyers我在https://github.com/luin/ioredis在这个问题上取得了更大的成功——但你需要一个缓存集群设置,包括静态加密、传输加密和密码。 API 类似。

您好,当它进入主人并被释放时,有人可以请教吗? 遇到这个问题,不得不手动覆盖 node_module 中的 createClient.js。 这个问题已经打开了一年多。 我们可以将其推出并允许 TLS 吗?

目前,本节

if (parsed.protocol && parsed.protocol !== 'redis:') {
    console.warn('node_redis: WARNING: You passed "' + parsed.protocol.substring(0, parsed.protocol.length - 1) + '" as protocol instead of the "redis" protocol!');
}

需要替换为

if (parsed.protocol === 'rediss:') {
    options.tls = options.tls || {};
} else if (parsed.protocol !== 'redis:') {
    console.warn('node_redis: WARNING: You passed "' + parsed.protocol.substring(0, parsed.protocol.length - 1) + '" as protocol instead of the "redis" protocol!');
}

在 createClient.js 中以获得redis://支持,或者您可以尝试另一种方式,如下所示。

var redis = require("redis");
var client = redis.createClient("redis://:password<strong i="13">@host</strong>:port", {tls:{}});

通过将 tls 作为空对象传递,我的 redis 客户端连接起来没有任何问题。

@scriptonian这也应该通过避免在 createClient.js 中手动覆盖来解决您的问题

请注意 :
如果我的评论风格很奇怪,请告诉我。 我是 github 的新手。 :)

谢谢你,venkatesh,是的,我已经做出了这个改变,因为 coguy450 在评论中建议了它。 但我很惊讶团队还没有更新这个。 已经一年多了!

+1

此修复程序是否有新版本?

有人想提出拉取请求以支持 redis:// url?
你呢@venkatesh-nadar 🙂

@peterpoliwoda它似乎已经添加到主分支中...... 👍

嗯...是的,我看到它在 repo 中,但 npm 没有安装修复程序。 版本号没有改变,所以 'npm install' 保留旧版本,就像存档中有旧的 tarball 一样。
我通过直接从 Github 安装它来工作
'''
npm 安装https://github.com/NodeRedis/node_redis
'''

非常感谢@venkatesh-nadar!

@BridgeAR我们可以在 npm 中获得新版本吗?

在过去的几年里,已经多次联系@BridgeAR请求 npm 发布访问权限,但没有收到回音,我知道他正忙于 Node.js 的事情,这可能是这个 repo 被忽略的原因。

让我们在https://github.com/NodeRedis/node_redis/issues/1040#issuecomment -581418899 讨论回购的未来?

大家好,我已接任首席维护者,现在拥有所有必需的访问权限🎉

在过去的几天里,我一直在为 master 的发布做准备,而在几分钟前,我刚刚将 v3.0.0 发布到 NPM; https://github.com/NodeRedis/node-redis/releases/tag/v3.0.0 - 其中包括此更改。

期待定期发布——我目前的首要任务是让这个项目对贡献者更加友好,以确保项目能够生存并继续发展,并且不会被任何人的时间所阻碍。 为此,我想培养更多的浅贡献者。 有了这个,我希望减轻项目需要更新的先前问题,但没有人有能力这样做。 我正在解决以下问题;

  • [x] 贡献文档和行为准则
  • [x] 设置开放集体和贡献者费用政策

    • 你会注意到 GitHub 顶部闪亮的新Sponsor按钮,我自己也继续赞助它,并通过我的公司帮助为任何未来的贡献者启动它

  • WIP:发布自动化和语义版本控制(发布到 NPM、生成变更日志等)
  • [x] 改进 CI,例如 Windows CI 现在超级慢且不稳定

之后,我将把注意力转移到 Node Redis 代码库中的现代化(例如 promise)和清除技术债务上。 @BridgeAR已经为此做了很多工作,如果您好奇,请查看 WIP v4 分支及其变更日志。

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