如何创建带有身份验证密码的redis云连接url

问题描述 投票:0回答:4

我正在从 Heroku 插件切换到直接 Redis 云帐户,并且对如何使用身份验证信息生成 Redis url 感到有点困惑。

旧的 Heroku 附加网址的格式为

redis://rediscloud:mypassword@redis...

但是,在仪表板和文档中,我没有看到任何提及用户名和密码的信息。我是否仍将

rediscloud
设置为新帐户和连接字符串中的用户名?我在那里设置的用户名有什么关系吗?

redis
4个回答
48
投票

我使用golang(https://github.com/garyburd/redigo)并连接阿里云云Redis(链接:https://www.aliyun.com/product/kvstore?spm=5176.8006303.267657.7.cW2xH

通过连接字符串:

redis://任意用户名:密码@ip地址:6379/0

当数据库索引为0时成功


28
投票

目前(v4 及之前),Redis 不支持用户,仅提供针对全局密码的身份验证。为了符合 URI RFC (https://www.rfc-editor.org/rfc/rfc3986) 并基于 Redis URI 的临时 RFC (https://www.iana.org/assignments) /uri-schemes/prov/redis),您可以传递任何内容作为用户名,包括空字符串,它会没问题(即被忽略)。

附注感谢您在我们的文档中提出这一模糊之处,我会看到它已被修改。


13
投票
  • 版本 6+ 现在支持用户:https://redis.io/topics/acl
  • 如果您的实例未使用访问控制列表 (ACL)(意味着您以
    default
    用户身份进行身份验证)或使用旧版本的 Redis,则应在 Redis URL 中省略用户名(例如
     redis://rediscloud:mypassword@...
    redis://:mypassword@...
    )
  • 如果您在 URL 中包含类似
    rediscloud
    的用户名,并且您的实例没有在 ACL 中配置该用户,那么随着更多 Redis 客户端库实现 ACL 支持,您可能会遇到
    WRONGPASSWORD
    错误的身份验证问题。

8
投票

当需要 SSL 时,这种格式对我有用:

rediss://:password@redis-server-url:6380/0?ssl_cert_reqs=CERT_REQUIRED'

示例如下:

CELERY_BROKER_URL='rediss://:[email protected]:6380/0?ssl_cert_reqs=CERT_REQUIRED'
CELERY_RESULT_BACKEND='rediss://:[email protected]:6380/1?ssl_cert_reqs=CERT_REQUIRED'
© www.soinside.com 2019 - 2024. All rights reserved.