本发明涉及计算机,尤其涉及一种基于redis的数据读写方法、装置、电子设备及介质。
背景技术:
1、金融领域it设施通常对数据库服务的一致性和高可用特性要求较高,随着移动互联网、金融科技产业的发展,对高并发场景数据库性能的要求日益提升。金融业务广泛采用的主流关系型数据库,如mysql、oracle等,在可用性、一致性方面有较好的支持,但越来越无法满足金融业务数据读写服务对高性能、高可用、一致性的综合性需求。
2、高并发业务场景广泛使用redis等nosql数据库。原生redis数据库得益于内存数据库、io多路复用等特性具有非常优秀的处理性能,但其在数据一致性、高可用性方面无法完全胜任金融业务的需求。
3、在高可用性方面,以redis sentinel架构为例,redis sentinel架构虽然具备故障发现、故障转移机制,使得该架构具备了一定的高可用性。但redis sentinel架构默认配置使得sentinel节点对数据节点执行主动下线的判定时间较长,导致故障转移行为时效性差,进而使得数据库系统层面不可用时间较大,无法满足金融业务数据读写服务的高可用性要求。
技术实现思路
1、针对现有技术存在的问题,本发明实施例提供一种基于redis的数据读写方法、装置、电子设备及介质。
2、本发明提供一种基于redis的数据读写方法,包括:
3、基于所有节点的网络时延值,优化所述所有节点中哨兵节点的目标参数;
4、基于优化后的目标参数,接收客户端发送的数据处理请求;所述数据处理请求包括以下至少一项:写入请求或读取请求;
5、响应所述数据处理请求,进行对应的数据处理。
6、在一些实施例中,所述基于所有节点的网络时延值,优化所述所有节点中哨兵节点的目标参数,包括:
7、基于所述网络时延值,确定目标时延值;
8、在所述目标时延值小于或等于第一预设值的情况下,将所述第一预设值确定为所述目标参数的值;
9、在所述目标时延值大于所述第一预设值,并小于或等于第二预设值的情况下,将所述目标时延值确定为所述目标参数的值;
10、在所述目标时延值大于所述第二预设值的情况下,将所述第二预设值确定为所述目标参数的值;
11、所述第一预设值小于所述第二预设值。
12、在一些实施例中,所述基于优化后的目标参数,接收客户端发送的数据处理请求之后,还包括:
13、在所述数据处理请求为写入请求,并且所述写入请求失败的情况下,基于所述网络时延值,确定所述客户端的休眠时长;
14、所述休眠时长为所述客户端再次发送所述写入请求的时间间隔。
15、在一些实施例中,所述基于所有节点的网络时延值,优化所述所有节点中哨兵节点的目标参数之后,还包括:
16、将所述所有节点中数据主节点的持久化方式设置为aof持久化。
17、在一些实施例中,所述响应所述数据处理请求,进行对应的数据处理,包括:
18、在所述数据处理请求为写入请求的情况下,基于所述所有节点中数据节点的第一数量,确定第二数量;所述数据节点包括数据主节点和数据从节点;
19、在确定第二数量数据从节点进行数据复制完成的情况下,响应所述写入请求,进行数据写入。
20、在一些实施例中,所述休眠时长为所述网络时延值对应的平均值的两倍。
21、本发明还提供一种基于redis的数据读写装置,包括:
22、优化模块,用于基于所有节点的网络时延值,优化所述所有节点中哨兵节点的目标参数;
23、接收模块,用于基于优化后的目标参数,接收客户端发送的数据处理请求;所述数据处理请求包括以下至少一项:写入请求或读取请求;
24、处理模块,用于响应所述数据处理请求,进行对应的数据处理。
25、在一些实施例中,所述优化模块,具体用于:
26、基于所述网络时延值,确定目标时延值;
27、在所述目标时延值小于或等于第一预设值的情况下,将所述第一预设值确定为所述目标参数的值;
28、在所述目标时延值大于所述第一预设值,并小于或等于第二预设值的情况下,将所述目标时延值确定为所述目标参数的值;
29、在所述目标时延值大于所述第二预设值的情况下,将所述第二预设值确定为所述目标参数的值;
30、所述第一预设值小于所述第二预设值。
31、本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述基于redis的数据读写方法。
32、本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述基于redis的数据读写方法。
33、本发明还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述基于redis的数据读写方法。
34、本发明提供的基于redis的数据读写方法、装置、电子设备及介质,根据所有节点的网络时延值来优化哨兵节点的目标参数,从而可以优化哨兵节点对其它节点的主观下线判定时效,进而加快和优化redis sentinel架构故障发现和故障转移过程,实现数据库层面高可用,从而提高了数据读写的可用性。
1.一种基于redis的数据读写方法,其特征在于,包括:
2.根据权利要求1所述的基于redis的数据读写方法,其特征在于,所述基于所有节点的网络时延值,优化所述所有节点中哨兵节点的目标参数,包括:
3.根据权利要求1所述的基于redis的数据读写方法,其特征在于,所述基于优化后的目标参数,接收客户端发送的数据处理请求之后,还包括:
4.根据权利要求1所述的基于redis的数据读写方法,其特征在于,所述基于所有节点的网络时延值,优化所述所有节点中哨兵节点的目标参数之后,还包括:
5.根据权利要求4所述的基于redis的数据读写方法,其特征在于,所述响应所述数据处理请求,进行对应的数据处理,包括:
6.根据权利要求3所述的基于redis的数据读写方法,其特征在于,所述休眠时长为所述网络时延值对应的平均值的两倍。
7.一种基于redis的数据读写装置,其特征在于,包括:
8.根据权利要求7所述的基于redis的数据读写装置,其特征在于,所述优化模块,具体用于:
9.一种电子设备,包括存储器、处理器及存储在所述存储器上并在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至6任一项所述基于redis的数据读写方法。
10.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述基于redis的数据读写方法。