Redis —— 集群迁移和划分

文章目录

Redis ------ 集群迁移和划分


简介

需求背景:目前使用的Redis集群只有一个,由于业务激增,使用一套集群的方式并不适用当前场景,所以要将现集群按照业务形态以及业务需求进行划分,并实现迁移,各业务自治;

迁移步骤

  1. 了解当前的 Redis 集群架构和数据分布

    • 确定当前 Redis 集群的拓扑结构,包括节点数量、主从关系以及数据分布情况。
    • 分析当前集群中的业务数据,了解哪些数据属于不同的业务,以便进行合理的划分。
  2. 制定迁移计划

    • 根据业务划分的需求,确定新的 Redis 集群数量和拓扑结构。
    • 计划如何将数据从当前集群迁移到新集群,包括数据迁移策略、迁移过程中的数据一致性保证等。
  3. 创建新的 Redis 集群

    • 根据迁移计划,在新的集群环境中创建所需的 Redis 节点和拓扑结构。
    • 配置新集群的主从关系,确保高可用性和数据冗余。
  4. 迁移数据

    • 选择合适的数据迁移方法,根据迁移计划逐步将数据从当前集群迁移到新集群。
    • 可以使用 Redis 的内置工具(如 MIGRATE 命令)或第三方工具(如 redis-migrate-tool)来执行数据迁移。
    • 确保在迁移过程中数据的一致性和完整性,可以使用增量迁移、全量迁移或增量全量混合迁移等策略。
  5. 验证迁移结果

    • 在新集群上进行测试和验证,确保业务数据的正确性和可用性。
    • 针对每个业务进行适当的性能和稳定性测试,确保新集群能够满足业务需求。
  6. 切换应用程序配置

    • 更新应用程序的配置,将连接信息指向新的 Redis 集群。
    • 重新启动或重载应用程序,确保应用程序可以正确连接和使用新的集群。
  7. 监控和优化

    • 针对新集群进行监控和性能优化,确保集群的稳定性和可用性。
    • 配置合适的监控工具,监控集群的运行状态、资源使用情况以及业务性能指标。

总结步骤

  • 1/ 整理Redis集群分布及使用情况

    目标是读取相关的配置,比如yml、properties,也可能使用了配置中心,例如Apollo和Nacos

    1. 读gitlab仓库yml或者properties;
    2. 如果是配置中心,读取相关配置(比如app.id
    3. 调用配置中心API读取相关配置;
    4. 建议获取参数 (cache_key_prefix(前缀)、spring.redis.is-cluster(是否使用集群)、spring.redis.cluster.nodes(集群节点)、spring.redis.host(节点配置)、spring.redis.database(使用数据库)
  • 2/ 整理表格

    表格内容:项目|配置信息(用于整理各项目的Redis配置情况)

  • 3/ 确认目标

    确认迁移目标和优化目标

  • 4/ 重新定义集群分布

    根据迁移和优化目标,以及Redis集群分布和使用情况,以最终目标重新定义集群分布和拆分目标

  • 5/ 集群部署

    根据拆分后目标,重新搭建集群,并规范集群命名(节点命名等)

  • 6/ 数据迁移和业务调整配置

    实现数据迁移和划分,业务调整相关Redis配置

  • 7/ 上线后监控

    监控Redis集群使用情况,并根据情况进行调整和优化

相关推荐
BillKu20 分钟前
Java + Spring Boot + Mybatis 实现批量插入
java·spring boot·mybatis
❀͜͡傀儡师22 分钟前
如何使用k8s安装redis呢
redis·容器·kubernetes
dog shit1 小时前
web第十次课后作业--Mybatis的增删改查
android·前端·mybatis
emo了小猫1 小时前
Mybatis #{} 和 ${}区别,使用场景,LIKE模糊查询避免SQL注入
数据库·sql·mysql·mybatis
潘yi.6 小时前
NoSQL之Redis配置与优化
数据库·redis·nosql
zdkdchao6 小时前
hbase资源和数据权限控制
大数据·数据库·hbase
伤不起bb6 小时前
NoSQL 之 Redis 配置与优化
linux·运维·数据库·redis·nosql
leo__5206 小时前
PostgreSQL配置文件修改及启用方法
数据库·postgresql
14L8 小时前
互联网大厂Java面试:从Spring Cloud到Kafka的技术考察
spring boot·redis·spring cloud·kafka·jwt·oauth2·java面试
一个有女朋友的程序员8 小时前
Spring Boot 缓存注解详解:@Cacheable、@CachePut、@CacheEvict(超详细实战版)
spring boot·redis·缓存