功能 | 说明 |
路由转发 | Proxy 维护与后端数据分片的持久连接,承担着请求的均衡分配与精确路由的关键角色,确保请求的高效处理和系统的稳定运行。 |
兼容主从集群访问模式 | 当业务增长超出了标准架构的承载能力时,您可以轻松地将数据迁移到配备了 Proxy 的集群架构中,非多 Key 操作的情况下都可以兼容,无缝实现架构转换,显著减少了业务调整的成本,确保了业务的平滑过渡和持续增长。具体操作,请参见 升级实例架构。 |
变更分片无感 | Proxy 本身并不直接调整数据分片的数量和大小,而是通过与后端的数据分片管理机制协同工作来实现数据分片弹性伸缩。在数据分片需要迁移(如扩容或缩容操作)时,Proxy 可以支持透明的数据迁移过程,确保客户端操作不受影响。 |
多数据库(DB)
| 原生 Redis 及其 Cluster 客户端通常仅支持单一数据库操作,且默认情况下仅使用数据库0,同时不提供对`SELECT`命令的支持。通过使用 Proxy 来连接集群实例,可以实现对多个数据库的访问,并且能够使用`SELECT`命令在不同的数据库间切换。在集群版中,每个实例默认提供高达256个数据库,为多数据库功能提供了强大支持。 |
副本只读 | 读写分离架构,Proxy 持续监控只读节点的运行状况,以便在特定情况下实施流量管理措施: 当只读节点表现出异常状态时,Proxy 将减少该节点的权重,降低其处理请求的比例。若一次尝试连接失败,Proxy 将进行路由刷新,暂时停止向该节点转发流量,将业务请求转换到其他节点,直至问题得到解决并重新激活服务。 如果只读节点正在进行全量数据同步,Proxy 将暂停向该节点发送流量。这一措施将持续至同步过程完成,确保节点在承担用户请求前拥有最新和一致的数据副本。同步完成后,Proxy 将恢复对该节点的服务,允许其参与正常的请求处理。 |
多账号权限控制 | Proxy 可以根据用户设定的权限来控制用户能够执行的命令类型。不同的账户能执行他们被授权的命令。 只读权限用户:只能执行读命令,如 GET、MGET、HGET、SMEMBERS等。尝试执行任何写命令(如 SET、LPUSH、SADD等)将会被 Redis 服务器拒绝。 读写权限用户:具有读写权限的用户可以执行包括读命令和写命令在内的所有命令。 |
转发规则 | 说明 |
基础转发规则 | 集群架构 操作单个 Key 的命令,每个 Key 通常存储在一个分片上,Proxy 会直接将请求发送到该 Key 所属的槽(slot)位。 当操作涉及多个 Key 时,如果这些 Key 是存储在不同的数据分片,Proxy 会将命令拆分成多个子命令,每个子命令只涉及一个 Key,将每个 Key 分别发送给对应的分片。 读写分离 写请求:因为所有的数据变更都需要在主节点上进行,Proxy 将其直接转发到主节点(Master)。 读请求:Proxy 根据从节点的实际性能和当前负载动态调整权重,将读请求均衡分配到每个从节点。当前暂不支持自定义具体的节点。 |
特定命令转发规则 | Proxy 会将事务命令(MULTI 或 EXEC)、Lua 脚本命令 (EVAL 或 EVALSHA)、SCAN、INFO、发布订阅命令(PUBLISH、SUBSCRIBE 等)转发至主节点。 |
本页内容是否解决了您的问题?