登录
首页 >  Golang >  Go问答

不中断服务的情况下修改Redis密码

来源:stackoverflow

时间:2024-03-14 17:00:26 280浏览 收藏

Golang不知道大家是否熟悉?今天我将给大家介绍《不中断服务的情况下修改Redis密码》,这篇文章主要会讲到等等知识点,如果你在看完本篇文章后,有更好的建议或者发现哪里有问题,希望大家都能积极评论指出,谢谢!希望我们能一起加油进步!

问题内容

出于安全考虑,我们计划定期(例如每 4 周)更改我们的 redis 密码。问题是如何在没有外部停机或仅在很短的时间内进行更改。

我的计划是:

  1. 清除redis服务器上的密码并重新启动。
  2. 由于不需要密码,即使密码已过时,客户端仍然可以重新连接到 Redis 服务器
  3. 客户端会定期从配置中心重新加载新密码,不久之后,所有客户端都会更新为新密码。
  4. 将 Redis 服务器更改为新密码并重新启动。
  5. 客户端使用新密码重新连接到redis服务器

但是当我尝试它时(我正在使用redigo),我得到了ERR客户端发送了AUTH,但在步骤2中没有设置密码set。如果不需要,似乎我们无法使用额外的密码连接到redis密码。但是当我使用redis-cli时,它可以!我想知道 redis-cli 如何实现这一点,以及如何使用 redigo 做到这一点?


正确答案


密码轮换的常见解决方案是:

  • 在密码更新期间,让配置提供程序提供两个密码:当前密码和以前的密码。
  • 客户端尝试使用当前密码。
  • 如果失败,则会重试上一个。

在过渡期结束时,服务器将使用新密码重新启动,并从配置中删除旧密码。

为什么不使用 Redis ACL https://redis.io/topics/acl

  1. 使用密码1创建当前用户user1
  2. 一段时间后创建用户2/密码2
  3. 为应用程序重新连接留出宽限期(某些客户端允许您在 go 中设置 MaxConnAge)
  4. 删除用户1/密码1

文中关于的知识介绍,希望对你的学习有所帮助!若是受益匪浅,那就动动鼠标收藏这篇《不中断服务的情况下修改Redis密码》文章吧,也可关注golang学习网公众号了解相关技术文章。

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>