兼容redis单例模式和集群模式的通信方法和装置制造方法及图纸

技术编号:32831085 阅读:13 留言:0更新日期:2022-03-26 20:43
本申请适用于数据处理技术领域,提供一种兼容redis单例模式和集群模式的通信方法和装置,其方法包括:对客户端在单例模式下发送的数据通信指令进行兼容性检测,确定数据通信指令在Redis服务端中是否兼容单例模式和集群模式;若不兼容,则获取数据通信指令中携带的索引值,并按照预设的重写规则重写索引值,使数据通信指令基于重写后的索引值实现在Redis服务端中兼容单例模式和集群模式;根据数据通信指令中重写后的索引值,从Redis服务端预设的集群映射中获得与重写后的索引值相对应的访问地址,按照访问地址进行数据通信处理。实现在单例工作模式的场景下可以通过分布式缓存对接,兼容单例模式和集群模式,提升系统性能。提升系统性能。提升系统性能。

【技术实现步骤摘要】
兼容redis单例模式和集群模式的通信方法和装置


[0001]本申请涉及人工智能
,尤其涉及一种兼容redis单例模式和集群模式的通信方法和装置,还涉及用于执行该兼容redis单例模式和集群模式的通信方法的电子设备及存储介质。

技术介绍

[0002]对于历史遗留的业务系统,在系统设计之初,通常会由于设计问题、成本问题以及当时的Redis(Redis本质上是一种键

值类型的存储数据库)版本限制问题等客观因素,使得业务系统因缓存版本低或未采用集群模式等情况而选择单例工作模式的场景。Redis在单例工作模式的场景下通过指定Redis的db数据库属性来实现有限的数据分库隔离,通常为主从模式并对缓存数据的一致性要求较高,只能使用主节点提供服务。
[0003]随着业务系统的发展,这类采用单例工作模式的历史遗留的业务系统在缓存中间件容易出现性能问题,例如连接数过高,数据存储扩展性不强,以及迁移到集群的技术成本过高甚至无法迁移等。目前,现有解决redis连接数过高,扩展性不强等问题的相关中间件产品更多专注于提供基于redis集群模式的原生支持,例如redis client sharding,twemproxy,codis,redis cluster,corvus等,很少考虑到单例模式缓存的扩展性问题。而且,目前现有的相关中间件对缓存的监控基本上是基于redibim信息,并未过多的提供中间件的监控能力,此类监控容易对redis的服务器造成性能压力。因而,目前急需为历史遗留的业务系统提供一种兼容redis单例模式和集群模式的缓存扩展方案。

技术实现思路

[0004]有鉴于此,本申请实施例提供了一种兼容redis单例模式和集群模式的通信方法和装置,可以实现Redis在单例工作模式的场景下可以通过分布式缓存对接,兼容了redis单例模式和集群模式,提升了Redis系统性能。
[0005]本申请实施例的第一方面提供了一种兼容redis单例模式和集群模式的通信方法,包括:
[0006]对客户端在单例模式下发送的数据通信指令进行兼容性检测,判断所述数据通信指令在Redis服务端中是否兼容单例模式和集群模式;
[0007]若不兼容,则获取所述数据通信指令中携带的索引值,并按照预设的重写规则重写所述索引值,以使所述数据通信指令基于重写后的索引值实现在Redis服务端中兼容单例模式和集群模式;
[0008]根据所述数据通信指令中重写后的索引值,从所述Redis服务端预设的集群映射中获得与所述重写后的索引值相对应的访问地址,以按照所述访问地址进行数据通信处理。
[0009]结合第一方面,在第一方面的第一种可能实现方式中,所述对客户端在单例模式下发送的数据通信指令进行兼容性检测,判断所述数据通信指令在Redis服务端中是否兼
容单例模式和集群模式的步骤,包括:
[0010]基于预设的代理中间件拦截所述数据通信指令,获取所述数据通信指令中携带的索引值;
[0011]识别所述Redis服务端在单例模式下的db数据库数量,若所述db数据库数量多于一个,则根据所述索引值遍历每个db数据库,判断是否至少有两个db数据库存在所述索引值;
[0012]若至少有两个db数据库存在所述索引值,则判断所述数据通信指令在所述Redis服务端中不兼容单例模式和集群模式。
[0013]结合第一方面的第一种可能实现方式,在第一方面的第二种可能实现方式中,所述基于预设的代理中间件拦截所述数据通信指令的步骤,包括:
[0014]建立连接所述代理中间件与所述客户端之间的通信通道,以通过所述通信通道监听所述客户端并拦截所述客户端在单例模式下发送的数据通信指令,在所述通信通道中保持所述数据通信指令对应访问的db数据库属性。
[0015]结合第一方面的第二种可能实现方式,在第一方面的第三种可能实现方式中,所述db数据库属性包括以下至少一种:tcp信道属性、数据库索引上下文属性。
[0016]结合第一方面,在第一方面的第四种可能实现方式中,所述获取所述数据通信指令中携带的索引值,并按照预设的重写规则重写所述索引值,以使所述数据通信指令基于重写后的索引值实现在Redis服务端中兼容单例模式和集群模式的步骤,包括:
[0017]对所述数据通信指令进行内容解析处理,获取所述数据通信指令中携带的索引值和所述数据通信指令对应访问的db数据库属性;
[0018]将所述db数据库属性作为索引值前缀重写所述索引值,将重写后的索引值配置为所述数据通信指令的新索引值,以使所述数据通信指令基于重写后的索引值实现在Redis服务端中兼容单例模式和集群模式。
[0019]结合第一方面或第一方面的第一或第二或第三或第四种可能实现方式,在第一方面的第五种可能实现方式中,所述根据所述数据通信指令中重写后的索引值,从所述Redis服务端预设的集群映射中获得与所述重写后的索引值相对应的访问地址,以按照所述访问地址进行数据通信处理的步骤之前,还包括:
[0020]在所述Redis服务端,对于原单例模式下设置的若干个第一db数据库中存储的所有数据,在每个数据的原索引值中添加所述每个数据各自所在的第一db数据库对应的db数据库属性,以生成所述每个数据各自对应的复合索引值,并按照所述复合索引值将所述每个数据统一存储至第二db数据库中,以形成单一集群映射,其中,在所述第二db数据库中,复合索引值与数据之间建立有映射关系;
[0021]所述根据所述数据通信指令中重写后的索引值,从所述Redis服务端预设的集群映射中获得与所述重写后的索引值相对应的访问地址,以按照所述访问地址进行数据通信处理的步骤,包括:
[0022]根据所述重写后的索引值查询所述第二db数据库中所具有的复合索引值,确定所述第二db数据库中与所述重写后的索引值一致的目标复合索引值;
[0023]根据所述目标复合索引值,从所述第二db数据库中获得与所述目标复合索引值具有映射关系的目标数据,并采用所述目标数据进行数据通信处理。
[0024]结合第一方面或第一方面的第一或第二或第三或第四种可能实现方式,在第一方面的第六种可能实现方式中,所述根据所述数据通信指令中重写后的索引值,从所述Redis服务端预设的集群映射中获得与所述重写后的索引值相对应的访问地址,以按照所述访问地址进行数据通信处理的步骤之前,还包括:
[0025]在所述Redis服务端,将原单例模式下设置的若干个db数据库分别映射到分布式存储数据库设置的master节点中,以形成多集群映射,其中,在所述分布式存储数据库中,一个db数据库对应一个master节点;
[0026]所述根据所述数据通信指令中重写后的索引值,从所述Redis服务端预设的集群映射中获得与所述重写后的索引值相对应的访问地址,以按照所述访问地址进行数据通信处理的步骤,包括:
[0027]根据所述重写后的索引值中包含的db数据库属性,在所述分布式存储数据本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种兼容redis单例模式和集群模式的通信方法,其特征在于,包括:对客户端在单例模式下发送的数据通信指令进行兼容性检测,判断所述数据通信指令在Redis服务端中是否兼容单例模式和集群模式;若不兼容,则获取所述数据通信指令中携带的索引值,并按照预设的重写规则重写所述索引值,以使所述数据通信指令基于重写后的索引值实现在Redis服务端中兼容单例模式和集群模式;根据所述数据通信指令中重写后的索引值,从所述Redis服务端预设的集群映射中获得与所述重写后的索引值相对应的访问地址,以按照所述访问地址进行数据通信处理。2.根据权利要求1所述的兼容redis单例模式和集群模式的通信方法,其特征在于,所述对客户端在单例模式下发送的数据通信指令进行兼容性检测,判断所述数据通信指令在Redis服务端中是否兼容单例模式和集群模式的步骤,包括:基于预设的代理中间件拦截所述数据通信指令,获取所述数据通信指令中携带的索引值;识别所述Redis服务端在单例模式下的db数据库数量,若所述db数据库数量多于一个,则根据所述索引值遍历每个db数据库,判断是否至少有两个db数据库存在所述索引值;若至少有两个db数据库存在所述索引值,则判断所述数据通信指令在所述Redis服务端中不兼容单例模式和集群模式。3.根据权利要求2所述的兼容redis单例模式和集群模式的通信方法,其特征在于,所述基于预设的代理中间件拦截所述数据通信指令的步骤,包括:建立连接所述代理中间件与所述客户端之间的通信通道,以通过所述通信通道监听所述客户端并拦截所述客户端在单例模式下发送的数据通信指令,在所述通信通道中保持所述数据通信指令对应访问的db数据库属性。4.根据权利要求3所述的兼容redis单例模式和集群模式的通信方法,其特征在于,所述db数据库属性包括以下至少一种:tcp信道属性、数据库索引上下文属性。5.根据权利要求1所述的兼容redis单例模式和集群模式的通信方法,其特征在于,所述获取所述数据通信指令中携带的索引值,并按照预设的重写规则重写所述索引值,以使所述数据通信指令基于重写后的索引值实现在Redis服务端中兼容单例模式和集群模式的步骤,包括:对所述数据通信指令进行内容解析处理,获取所述数据通信指令中携带的索引值和所述数据通信指令对应访问的db数据库属性;将所述db数据库属性作为索引值前缀重写所述索引值,将重写后的索引值配置为所述数据通信指令的新索引值,以使所述数据通信指令基于重写后的索引值实现在Redis服务端中兼容单例模式和集群模式。6.根据权利要求1

5任意一项所述的兼容redis单例模式和集群模式的通信方法,其特征在于,所述根据所述数据通信指令中重写后的索引值,从所述Redis服务端预设的集群映射中获得与所述重写后的索引值相对应的访问地址,以按照所述访问地址进行数据通信处理的步骤之前,还包括:在所述Redis服务端,对于原单例模式下设置的若干个第一db数据库中存储的所有数据,在每个数据的原索引值中添加所述每个数据各自所在的第一db数据库对...

【专利技术属性】
技术研发人员:姚飞
申请(专利权)人:平安证券股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1