【技术实现步骤摘要】
兼容redis单例模式和集群模式的通信方法和装置
[0001]本申请涉及人工智能
,尤其涉及一种兼容redis单例模式和集群模式的通信方法和装置,还涉及用于执行该兼容redis单例模式和集群模式的通信方法的电子设备及存储介质。
技术介绍
[0002]对于历史遗留的业务系统,在系统设计之初,通常会由于设计问题、成本问题以及当时的Redis(Redis本质上是一种键
‑
值类型的存储数据库)版本限制问题等客观因素,使得业务系统因缓存版本低或未采用集群模式等情况而选择单例工作模式的场景。Redis在单例工作模式的场景下通过指定Redis的db数据库属性来实现有限的数据分库隔离,通常为主从模式并对缓存数据的一致性要求较高,只能使用主节点提供服务。
[0003]随着业务系统的发展,这类采用单例工作模式的历史遗留的业务系统在缓存中间件容易出现性能问题,例如连接数过高,数据存储扩展性不强,以及迁移到集群的技术成本过高甚至无法迁移等。目前,现有解决redis连接数过高,扩展性不强等问题的相关中间件产品更多专注于提供基于redis集群模式的原生支持,例如redis client sharding,twemproxy,codis,redis cluster,corvus等,很少考虑到单例模式缓存的扩展性问题。而且,目前现有的相关中间件对缓存的监控基本上是基于redibim信息,并未过多的提供中间件的监控能力,此类监控容易对redis的服务器造成性能压力。因而,目前急需为历史遗留的业务系统提供一种兼容redi ...
【技术保护点】
【技术特征摘要】
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数据库对...
【专利技术属性】
技术研发人员:姚飞,
申请(专利权)人:平安证券股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。