本技术涉及服务器集群,尤其涉及一种redis主从实例和redis集群实例相互转换的方法。
背景技术:
1、随着通信技术和网络技术的快速发展,大多数通信系统和网络系统的负载要求变得更高,且会随着业务变化而出现扩容和缩容的需求;为了应对业务波动造成的扩容、缩容影响,系统一般采用集群的形式。
2、远程字典服务(remote dictionary server,redis)作为一个高性能的开源key-value数据库,具有访问性能高、数据类型丰富、可扩展性好等特点;同时,redis可以通过外部服务的方式,为用户提供key-value存储和查询功能。
3、现有技术中,redis采用分片技术,将数据分片存储在多个redis实例上,即将数据分散到若干设备的redis实例上,从而减轻单个redis实例的存储压力;当业务需求发生变化时,通过创建新集群、替换原有集群的方式实现集群的扩容和缩容。然而,创建新集群、替换原有集群的方式会延长扩容和缩容的时间,不够灵活,效率较低,无法快速响应业务的扩缩容需求;且该方式需要将所有资源从原有集群迁移至新集群,无法进行针对性的资源迁移,因此现有技术存在扩缩容需求响应速度慢和资源调用成本高的技术问题。
技术实现思路
1、本技术提供一种redis主从实例和redis集群实例相互转换的方法,用以解决现有技术中扩缩容需求响应速度慢和资源调用成本高的技术问题。
2、第一方面,本技术提供一种将redis主从实例转换为redis集群实例的方法,包括:
3、确定第一redis主从实例中待转移的第一目标资源,将所述第一目标资源转移到与所述第一redis主从实例对应的第一redis主从和trove集群实例;基于所述第一redis主从和trove集群实例生成相应的第一redis单分片主从集群实例;
4、为所述第一redis单分片主从集群实例添加第一预设数量的第二目标资源;基于所述第一redis单分片主从集群实例,对所述第一目标资源和所述第二目标资源进行分配,生成相应的第一redis集群实例。
5、可选地,所述确定第一redis主从实例中待转移的第一目标资源,将所述第一目标资源转移到与所述第一redis主从实例对应的第一redis主从和trove集群实例,包括:
6、判断所述第一redis主从实例是否包含第一负载均衡器;若是,则将所述第一负载均衡器转移到与所述第一redis主从实例对应的所述第一redis主从和trove集群实例;
7、若否,则获取所述第一redis主从实例的第一虚拟ip地址,基于所述第一虚拟ip地址创建所述第一负载均衡器,并将所述第一负载均衡器转移到所述第一redis主从和trove集群实例。
8、可选地,所述确定第一redis主从实例中待转移的第一目标资源,将所述第一目标资源转移到与所述第一redis主从实例对应的第一redis主从和trove集群实例,还包括:
9、获取所述第一redis主从实例的第一主实例、第一代理实例和多种第一配置资源;其中,所述第一主实例与所述第一虚拟ip地址绑定;
10、确定所述第一配置资源中待转移的第一目标配置资源,将所述第一主实例、所述第一代理实例和所述第一目标配置资源转移到所述第一redis主从和trove集群实例。
11、可选地,所述确定第一redis主从实例中待转移的第一目标资源,将所述第一目标资源转移到与所述第一redis主从实例对应的第一redis主从和trove集群实例,还包括:
12、将所述第一虚拟ip地址与所述第一主实例解绑,基于所述第一虚拟ip地址,在所述第一redis主从和trove集群实例中创建相应的第二虚拟ip地址;将所述第二虚拟ip地址与所述第一主实例进行绑定;
13、删除所述第一目标配置资源之外的所述第一配置资源。
14、可选地,所述为所述第一redis单分片主从集群实例添加第一预设数量的第二目标资源;基于所述第一redis单分片主从集群实例,对所述第一目标资源和所述第二目标资源进行分配,包括:
15、基于第一预设条件为所述第一redis单分片主从集群实例添加第一预设数量的第一目标分片和所述第一代理实例;基于所有所述第一代理实例对所述第一负载均衡器进行相应的配置;
16、确定所述第一redis单分片主从集群实例中用于存储数据的第一数据槽;基于所述第一目标分片和所述第一redis单分片主从集群实例的所有分片,对所述第一数据槽进行重新分配。
17、第二方面,本技术提供一种将redis集群实例转换为redis主从实例的方法,包括:
18、确定与第二redis集群实例对应的第二redis单分片主从集群实例,基于所述第二redis单分片主从集群实例生成相应的第二redis主从和trove集群实例;
19、基于所述第二redis主从和trove集群实例创建相应的第二redis主从实例,并确定所述第二redis主从和trove集群实例中待转移的第三目标资源,将所述第三目标资源转移到所述第二redis主从实例。
20、可选地,所述确定与第二redis集群实例对应的第二redis单分片主从集群实例,包括:
21、确定所述第二redis集群实例中所有分片包含的所有第二数据槽,以及所述第二redis集群实例中预保留的第二目标分片;
22、将所有所述第二数据槽迁移到所述第二目标分片,并删除所述第二目标分片之外的所有分片。
23、可选地,所述方法还包括:
24、基于第二预设条件删除所述第二redis集群实例中第二预设数量的第二代理实例;
25、基于删除后的所述第二代理实例,对所述第二redis集群实例中的第二负载均衡器进行配置;
26、将所述第二redis集群实例缩容为第二redis单分片主从集群实例。
27、可选地,所述确定所述第二redis主从和trove集群实例中待转移的第三目标资源,将所述第三目标资源转移到所述第二redis主从实例,包括:
28、获取所述第二redis主从和trove集群实例中的第二配置资源,确定所述第二配置资源中待转移的第二目标配置资源;
29、将所述第二目标配置资源转移到所述第二redis主从实例,并删除所述第二目标配置资源之外的所述第二配置资源。
30、可选地,所述方法还包括:
31、获取所述第二redis主从实例的第二主从实例id,基于所述第二主从实例id在所述第二redis主从实例中创建相应的第三虚拟ip地址;
32、将所述第三虚拟ip地址与所述第二redis主从实例中的第二主实例进行绑定。
33、本技术提供的redis主从实例和redis集群实例相互转换的方法,在用户业务增长时,允许将redis主从实例扩容为redis集群实例,首先需要确定第一redis主从实例中待转移的第一目标资源,将第一目标资源转移到第一redis主从和trove集群实例,并基于第一redis主从和trove集群实例生成第一redis单分片主从集群实例;其次为第一redis单分片主从集群实例添加第二目标资源,并对第一目标资源和第二目标资源进行分配,生成第一redis集群实例。在用户业务处于低谷期时,按照第二redis集群实例到第二redis单分片主从集群实例到第二redis主从和trove集群实例到第二redis主从实例的步骤,将第二redis集群实例缩容为第二redis主从实例;在该转换过程中,需要转移的第三目标资源也跟随整个转换步骤进行迁移。redis主从实例和redis集群实例相互转换的过程是在原有实例的基础上进行转换,将原有实例的数据进行迁移,而非完全创建一个新实例去替换原有实例,以按照用户需求动态地进行扩容或缩容,且用户也无需更换redis客户端,或修改自己的业务代码;此外,在redis的两种不同部署形态切换过程中,通过自动删除目标形态不需要的资源,以及创建其所需的资源来进行针对性的资源转移,实现了提高扩缩容需求的响应速度和降低资源调用成本的技术效果。
1.一种将redis主从实例转换为redis集群实例的方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,所述确定第一redis主从实例中待转移的第一目标资源,将所述第一目标资源转移到与所述第一redis主从实例对应的第一redis主从和trove集群实例,包括:
3.根据权利要求2所述的方法,其特征在于,所述确定第一redis主从实例中待转移的第一目标资源,将所述第一目标资源转移到与所述第一redis主从实例对应的第一redis主从和trove集群实例,还包括:
4.根据权利要求3所述的方法,其特征在于,所述确定第一redis主从实例中待转移的第一目标资源,将所述第一目标资源转移到与所述第一redis主从实例对应的第一redis主从和trove集群实例,还包括:
5.根据权利要求3所述的方法,其特征在于,所述为所述第一redis单分片主从集群实例添加第一预设数量的第二目标资源;基于所述第一redis单分片主从集群实例,对所述第一目标资源和所述第二目标资源进行分配,包括:
6.一种将redis集群实例转换为redis主从实例的方法,其特征在于,包括:
7.根据权利要求6所述的方法,其特征在于,所述确定与第二redis集群实例对应的第二redis单分片主从集群实例,包括:
8.根据权利要求7所述的方法,其特征在于,所述方法还包括:
9.根据权利要求6所述的方法,其特征在于,所述确定所述第二redis主从和trove集群实例中待转移的第三目标资源,将所述第三目标资源转移到所述第二redis主从实例,包括:
10.根据权利要求6所述的方法,其特征在于,所述方法还包括:
