为什么 aliyun 的 redis 支持账号概念?
为什么 aliyun 的 redis 支持账号概念?
redis 只有密码概念,是没有账号概念的
但是 aliyun 的 redis 服务却有?
回复
1个回答
test
2024-06-23
因为阿里云的云 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 特性有一部分就来自于阿里云的贡献。
这也算是一个冷知识吧。
回复
适合作为回答的
- 经过验证的有效解决办法
- 自己的经验指引,对解决问题有帮助
- 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
- 询问内容细节或回复楼层
- 与题目无关的内容
- “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容