解决方案(1) redis单点切集群(腾讯云redis-cluster)

背景

为了应对更多的流量冲击,决定将业务的redis迁移到集群里。后端应用是golang开发的。

  • 源: 单机redis
  • 目标: 腾讯云redis集群3主0从
  • 条件: 集群redis内已有数据,非空

迁移经过

1. DTS

先采用腾讯云官方的DTS切换方案,失败。失败原因: DTS只支持节点数据迁移到空集群。

2. 决定重构redis组件,按照下述流程完成迁移

重构逻辑:

  • 第一步,所有应用双向写入源和目标redis,读写返回值取源返回值。
  • 第二步,保持15天+。确保未同步的缓存正常失效,新缓存全量同步。
  • 第三步,所有应用继续双向写入,但是读写返回值取目标redis
  • 第四步,至此,写的是目标redis,读的也是目标redis,源redis正式退休,移除。
  • 结束

实现详情

https://github.com/fwhezfwhez/redix

猜你喜欢

转载自blog.csdn.net/fwhezfwhez/article/details/113697550