我正在从 Heroku 插件切换到直接 Redis 云帐户,并且对如何使用身份验证信息生成 Redis url 感到有点困惑。
旧的 Heroku 附加网址的格式为
redis://rediscloud:mypassword@redis...
但是,在仪表板和文档中,我没有看到任何提及用户名和密码的信息。我是否仍将
rediscloud
设置为新帐户和连接字符串中的用户名?我在那里设置的用户名有什么关系吗?
我使用golang(https://github.com/garyburd/redigo)并连接阿里云云Redis(链接:https://www.aliyun.com/product/kvstore?spm=5176.8006303.267657.7.cW2xH )
通过连接字符串:
redis://任意用户名:密码@ip地址:6379/0
当数据库索引为0时成功
目前(v4 及之前),Redis 不支持用户,仅提供针对全局密码的身份验证。为了符合 URI RFC (https://www.rfc-editor.org/rfc/rfc3986) 并基于 Redis URI 的临时 RFC (https://www.iana.org/assignments) /uri-schemes/prov/redis),您可以传递任何内容作为用户名,包括空字符串,它会没问题(即被忽略)。
附注感谢您在我们的文档中提出这一模糊之处,我会看到它已被修改。
default
用户身份进行身份验证)或使用旧版本的 Redis,则应在 Redis URL 中省略用户名(例如 redis://rediscloud:mypassword@...
→ redis://:mypassword@...
)rediscloud
的用户名,并且您的实例没有在 ACL 中配置该用户,那么随着更多 Redis 客户端库实现 ACL 支持,您可能会遇到 WRONGPASSWORD
错误的身份验证问题。当需要 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'