为什么 aliyun 的 redis 支持账号概念?

为什么 aliyun 的 redis 支持账号概念?

redis 只有密码概念,是没有账号概念的

图片.png

但是 aliyun 的 redis 服务却有?

图片.png

阅读 2.1k
avatarAI BotBETA

首先,让我们澄清一下,Redis 本身并不支持“账号”概念,而是通过密码进行身份验证。但在阿里云的 Redis 服务中,他们可能为了更好地管理资源、安全性考虑或提供更细粒度的权限控制,引入了账号概念。

阿里云 Redis 支持账号概念的原因可能如下:

  1. 安全性增强:通过为每个应用或服务创建独立的账号,可以更好地控制对 Redis 的访问。每个账号可以有自己的权限设置,从而限制对数据的访问和修改。这有助于防止未经授权的访问或误操作。
  2. 资源隔离:不同的应用或服务可能对 Redis 有不同的需求和配置。通过为每个账号提供独立的资源配额和配置,阿里云可以更好地满足不同用户的需求,同时确保资源的有效利用。
  3. 简化管理:账号概念可以使 Redis 的管理更为集中和简化。例如,管理员可以轻松地查看、管理和修改所有账号的配置,而无需针对每个实例进行单独操作。
  4. 扩展性:随着业务的发展,可能需要更多的 Redis 实例来满足性能和存储需求。通过账号概念,可以更容易地管理和扩展这些实例,因为它们被组织在逻辑分组中。
  5. 多租户支持:对于那些希望将其 Redis 服务提供给第三方使用的企业,账号概念可以更好地支持多租户模式。通过为每个租户创建独立的账号,可以实现资源隔离和安全性保障。
  6. 与阿里云其他服务的集成:阿里云可能希望通过账号概念将其 Redis 服务与其他阿里云服务(如身份验证、监控、日志服务等)更好地集成,为用户提供更为完整和一体化的解决方案。

总之,虽然 Redis 本身没有账号概念,但阿里云在其 Redis 服务中引入这一概念是为了提供更好的安全性、资源管理、扩展性、多租户支持和集成功能。

2 个回答

因为阿里云的云 Redis 根本不是 Redis,而是 Tair,只是兼容了 Redis 协议而已。

这种协议兼容的产品在业内其实挺多的,比如前几年火过一阵儿的 Dragonfly,它不但兼容了 Redis 协议、还兼容了 Memcached 协议。


再补充一点,可能你会好奇它是怎样在兼容了 Redis 协议的基础上增加了账号。

原因很简单,它是把 Tair 这层的账号+密码,拼在一起作为了 Redis 协议里的密码。而跟账号相关的访问控制能力,由 Tair 提供,而不是 Redis 协议里带的。

https://help.aliyun.com/zh/redis/user-guide/logon-methods

继续补充。

@vishun 提到了 Redis 6.x 的新特性 ACL。但首先阿里云这个是从 4.X 开始就支持 ACL 了,所以显然不是利用了 Redis 本身的特性。

其次阿里云其实本身就是 Redis 社区的第二大贡献者(第一大当然是 Redis Labs,因为老祖宗 antirez 从 2019 年就不咋参与维护、2020 年直接官宣彻底退出项目了),现在 Redis 新版本里的很多特性就是阿里云在 Tair 项目里得到验证后反哺给 Redis 社区的。

所以虽然我没有具体去翻过 git log,但很有可能 Redis 6.x 里的 ACL 特性有一部分就来自于阿里云的贡献。

这也算是一个冷知识吧。

redis6.0版本有了acl权限控制功能,阿里云并不全是Tair也有原生的redis,但其原生5.0版本也支持多账号的话说明额外做了一些开发。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题