Redis实例是否支持扩容?
在Redis管理控制台支持变更实例的容量,通过该操作可调整实例的规格,以满足不同的容量需求。具体操作请参考实例生命周期管理-扩容
实例扩容时对业务是否会造成影响?
- 实例执行切换时会出现1~2次30秒内的连接闪断。
- 为保障扩容后的新实例能快速追平原实例的增量数据,同时规避因DNS缓存引起的数据双写,在扩容过程中,实例每个分片节点会出现1分钟内的只读状态。
- 扩容完成后,源实例的实例ID、连接地址、数据、白名单配置以及已创建的账号密码配置等均不会改变。
Redis实例是否支持缩容?
目前暂不支持实例缩容。
Redis实例是否类型变更?
Redis管理控制台支持变更实例的类型,通过该操作可将实例单副本变更为双副本,以满足更高的可靠性、稳定性需求。目前该功能已白名单开放,如需使用请联系技术支持。
支持哪些实例类型变更?变更操作会有什么影响?
实例版本 | 支持的实例变更类型 | 变更须知及影响 |
---|---|---|
Redis 2.8/4.0/5.0 | 单机实例变更为主备实例 | 连接会有秒级中断,大约1分钟左右的只读。 |
Redis 2.8/4.0/5.0 | 集群单机实例变更为集群主备实例 | 每个分片节点连接会有秒级中断,大约1分钟左右的只读。 |
Redis 6.0/7.0 | 单机实例变更为主备实例 | 连接无影响,业务无感知。 |
Redis 6.0/7.0 | cluster单机实例变更为cluster主备实例 | 连接无影响,业务无感知;建议业务方后续将新增的从节点地址加入连接地址,提高可用性。 |
Redis实例是否支持版本升级,如Redis 4.0升级到Redis 5.0?
目前暂不支持跨版本升级
实例规格变更是否需要关闭或重启实例?
当实例处于运行中的状态,即可进行规格变更,不会进行实例资源的关闭、重启操作。
Redis实例实例类型变更失败的原因
当Redis实例处于运行中状态才可执行实例类型变更操作,请检查是否有其他任务正在执行,如扩容、删除、重启等操作。如有其他任务执行,请稍后重试。
Redis集群实例如何内存不变,只扩分片数?
目前仅cluster单机、cluster主备可支持只扩分片数,不变更内存;其余架构暂不支持只修改分片数量。
集群实例是否支持单分片扩容?
目前仅cluster单机、cluster主备可支持对单分片容量扩容;其余架构暂不支持针对单分片容量扩容,仅支持对整个集群进行扩容,如需对集群进行扩容,请参考实例生命周期管理-扩容
在维护时间窗内对实例进行扩容或类型变更是否有业务中断?
若在维护时间内进行扩容,可能会造成短时间的业务中断。
Cluster集群实例进行规格扩容后,Lettuce客户端连接异常问题
在实例扩容后分片数有变化,槽位(Slot)会发生变化,部分槽位迁移到新分片上,
使用lettuce客户连接Cluster实例,客户端访问新分片时会出现 Connection to xxx not allowed. 问题
详情可参考Lettuce社区。
解决方案:开启Cluster集群自动刷新拓扑配置。
ClusterTopologyRefreshOptions topologyRefreshOptions = ClusterTopologyRefreshOptions.builder()
// 每隔time毫秒周期性刷新
.enablePeriodicRefresh(Duration.ofMillis(time))
// MOVED重定向, ASK重定向, 重连, 未知节点(since 5.1), 槽位不在当前所有分片中(since 5.2),当出现这五种情况时会触发自适应刷新
.enableAllAdaptiveRefreshTriggers()
.build();