阿里云数据库 社区版redis的集群架构的代理连接模式,能支持多key不在一个solt槽的mget合并获取吗?
支持的,可以参见这个文档哈
https://help.aliyun.com/zh/redis/product-overview/features-of-proxy-nodes?spm=a2c4g.11174283.0.i2
此回答整理自钉群“数据库上云(客户群)【咨询请 @数据库咨询】”
阿里云Redis社区版集群架构在集群模式下,键会通过哈希槽(hash slot)分布到不同的节点上。对于不在同一个slot的多个Key,MGET
命令默认无法直接在一个命令中合并获取。
在集群环境下,由于键分布在不同的节点上,MGET
命令如果包含多个分布在不同slot的键,客户端(如果是普通客户端,非集群客户端)无法自行完成跨节点的合并获取操作。
但如果使用的是阿里云Redis集群版提供的代理连接模式(Proxy Mode),代理服务器会根据请求的键解析出它们所在的节点,并透明地将请求转发给正确的节点执行。理论上,代理服务器有可能实现对MGET
这类跨slot请求的支持,但实际上是否支持,需要查看阿里云Redis集群版的具体实现和官方文档说明。
一般而言,为了在集群环境中有效地执行跨slot的MGET
操作,客户端需要使用支持集群模式的客户端库,该库能够智能地将命令拆分并发送到各个节点,最后再合并结果。而代理服务器的存在就是为了简化客户端的工作,使得客户端可以像操作单节点Redis一样操作集群。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。