数据存储管理方法、装置、电子设备和可读存储介质制造方法及图纸

技术编号:28060159 阅读:28 留言:0更新日期:2021-04-14 13:36
本申请实施例提供一种数据存储管理方法、装置、电子设备和可读存储介质,通过将获取的待存储数据缓存至Redis队列中,并探测数据库是否存在网络异常,若出现网络异常则将Redis队列中缓存的待存储数据保存至创建的文件中,在探测到数据库恢复网络正常之后,再将文件中的待存储数据写入至数据库中。如此,在出现网络异常的情况时,通过将Redis队列中的数据写入文件中,避免后续接收到的数据由于在Redis队列中堆积而造成数据丢弃的问题,并且,由于文件中存储的数据断电不丢失,可避免程序崩溃时存在的数据丢失的缺陷。时存在的数据丢失的缺陷。时存在的数据丢失的缺陷。

【技术实现步骤摘要】
数据存储管理方法、装置、电子设备和可读存储介质


[0001]本申请涉及存储
,具体而言,涉及一种数据存储管理方法、装置、电子设备和可读存储介质。

技术介绍

[0002]在分布式数据存储系统中,由于节点可能存在跨IDC(Internet Data Center,互联网数据中心)机房的场景,因此,极易出现网络不稳定的现象。目前,在向数据库进行数据写入时,如果出现网络异常情况,写入进程会将写入失败的数据缓存到内存中,然后不断进行数据写入的重试,直至数据写入成功。如此,后续所接收到的待存储的数据可能在内存中堆积,直至超过设置的最大使用内存后,数据将被丢弃。并且,堆积的数据将占用大量的内存,若程序崩溃,缓存在内存中的数据将丢失。现有的存储管理机制中,在出现网络异常时,可能导致数据的丢弃,且若出现程序崩溃,将导致内存队列中数据的丢失。

技术实现思路

[0003]本申请的目的包括,例如,提供了一种数据存储管理方法、装置、电子设备和计算机可读存储介质,其能够避免数据在内存中堆积所导致丢弃以及程序崩溃存在的数据丢失现象。
[0004]本申请的实施例可以这样实现:
[0005]第一方面,本申请实施例提供一种数据存储管理方法,所述方法包括:
[0006]将获取的多个待存储数据缓存至Redis队列中;
[0007]探测数据库是否出现网络异常,若出现网络异常则将所述Redis队列中的待存储数据保存至创建的文件中;
[0008]在探测到所述数据库恢复至网络正常时,将所述文件中的待存储数据写入至所述数据库中。
[0009]在可选的实施方式中,所述Redis队列包括与主数据库对应的主Redis队列,以及与备用数据库对应的备用Redis队列;
[0010]所述将获取的多个待存储数据缓存至Redis队列中的步骤,包括:
[0011]通过主进程将获取的多个待存储数据缓存至主Redis队列中;
[0012]将所述主Redis队列中缓存的待存储数据复制备份至备用Redis队列中。
[0013]在可选的实施方式中,所述文件包括与主数据库对应的主文件,以及与备用数据库对应的备用文件;
[0014]所述在探测到所述数据库恢复至网络正常时,将所述文件中的待存储数据写入至所述数据库中的步骤,包括:
[0015]在探测到所述主数据库恢复至网络正常时,通过所述主进程将所述主文件中的待存储数据写入至所述主数据库中;和/或
[0016]在探测到所述备用数据库恢复至网络正常时,通过备用进程将所述备用文件中的
待存储数据写入至所述备用数据库中。
[0017]在可选的实施方式中,所述将获取的多个待存储数据缓存至Redis队列中的步骤,包括:
[0018]通过主进程将获取的多个待存储数据缓存至主Redis队列中;
[0019]将所述主Redis队列中缓存的多个待存储数据分发至创建的多个线程中各所述线程对应的子队列;
[0020]将所述Redis队列中已分发至各所述子队列的待存储数据删除。
[0021]在可选的实施方式中,所述探测数据库是否出现网络异常,若出现网络异常则将所述Redis队列中的待存储数据保存至创建的文件中的步骤,包括:
[0022]探测数据库是否出现网络异常,若出现网络异常,针对各所述子队列,检测所述子队列中的待存储数据是否超过预设数量;
[0023]若超过所述预设数量,则将所述子队列中的待存储数据保存至创建的文件中。
[0024]在可选的实施方式中,所述在探测到所述数据库恢复至网络正常时,将所述文件中的待存储数据写入至所述数据库的步骤,包括:
[0025]在探测到所述数据库恢复至网络正常时,通过各所述线程将对应的文件中存储的待存储数据同步写入至所述数据库中。
[0026]在可选的实施方式中,所述探测数据库是否存在网络异常的步骤,包括:
[0027]从所述Redis队列中提取待存储数据写入数据库中;
[0028]若在预设时长内未检测到所述数据库的数据写入成功信息,则判定所述数据库存在网络异常。
[0029]第二方面,本申请实施例提供一种数据存储管理装置,所述装置包括:
[0030]缓存模块,用于将获取的多个待存储数据缓存至Redis队列中;
[0031]保存模块,用于探测数据库是否出现网络异常,若出现网络异常则将所述Redis队列中的待存储数据保存至创建的文件中;
[0032]写入模块,用于在探测到所述数据库恢复至网络正常时,将所述文件中的待存储数据写入至所述数据库中。
[0033]第三方面,本申请实施例提供一种电子设备,包括一个或多个存储介质和一个或多个与存储介质通信的处理器,一个或多个存储介质存储有处理器可执行的机器可执行指令,当电子设备运行时,处理器执行所述机器可执行指令,以执行前述实施方式中任意一项所述的方法步骤。
[0034]第四方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有机器可执行指令,所述机器可执行指令被执行时实现前述实施方式中任意一项所述的方法步骤。
[0035]本申请实施例的有益效果包括,例如:
[0036]本申请实施例提供一种数据存储管理方法、装置、电子设备和可读存储介质,通过将获取的待存储数据缓存至Redis队列中,并探测数据库是否存在网络异常,若出现网络异常则将Redis队列中缓存的待存储数据保存至创建的文件中,在探测到数据库恢复网络正常之后,再将文件中的待存储数据写入至数据库中。如此,在出现网络异常的情况时,通过将Redis队列中的数据写入文件中,避免后续接收到的数据由于在Redis队列中堆积而造成
数据丢弃的问题,并且,由于文件中存储的数据断电不丢失,可避免程序崩溃时存在的数据丢失的缺陷。
附图说明
[0037]为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
[0038]图1为现有技术中数据存储管理机制的过程示意图;
[0039]图2为本申请实施例提供的数据存储管理的应用场景示意图;
[0040]图3为本申请实施例提供的数据存储管理方法的流程图;
[0041]图4为本申请实施例提供的数据存储管理的机制示意图;
[0042]图5为图3中步骤S110的子步骤的流程图;
[0043]图6为本申请实施例提供的数据存储管理方法的另一流程图;
[0044]图7为本申请实施例提供的电子设备的结构框图;
[0045]图8为本申请实施例提供的数据存储管理装置的功能模块框图。
[0046]图标:10

服务器;110

存储介质;120...

【技术保护点】

【技术特征摘要】
1.一种数据存储管理方法,其特征在于,所述方法包括:将获取的多个待存储数据缓存至Redis队列中;探测数据库是否出现网络异常,若出现网络异常则将所述Redis队列中的待存储数据保存至创建的文件中;在探测到所述数据库恢复至网络正常时,将所述文件中的待存储数据写入至所述数据库中。2.根据权利要求1所述的数据存储管理方法,其特征在于,所述Redis队列包括与主数据库对应的主Redis队列,以及与备用数据库对应的备用Redis队列;所述将获取的多个待存储数据缓存至Redis队列中的步骤,包括:通过主进程将获取的多个待存储数据缓存至主Redis队列中;将所述主Redis队列中缓存的待存储数据复制备份至备用Redis队列中。3.根据权利要求2所述的数据存储管理方法,其特征在于,所述文件包括与主数据库对应的主文件,以及与备用数据库对应的备用文件;所述在探测到所述数据库恢复至网络正常时,将所述文件中的待存储数据写入至所述数据库中的步骤,包括:在探测到所述主数据库恢复至网络正常时,通过所述主进程将所述主文件中的待存储数据写入至所述主数据库中;和/或在探测到所述备用数据库恢复至网络正常时,通过备用进程将所述备用文件中的待存储数据写入至所述备用数据库中。4.根据权利要求1所述的数据存储管理方法,其特征在于,所述将获取的多个待存储数据缓存至Redis队列中的步骤,包括:通过主进程将获取的多个待存储数据缓存至主Redis队列中;将所述主Redis队列中缓存的多个待存储数据分发至创建的多个线程中各所述线程对应的子队列;将所述Redis队列中已分发至各所述子队列的待存储数据删除。5.根据权利要求4所述的数据存储管理方法,其特征在于,所述探测数据库是否出现网络异常,若出现网络异常则将所述Redis队列中的待存储数据保存至创...

【专利技术属性】
技术研发人员:刘袁
申请(专利权)人:成都知道创宇信息技术有限公司
类型:发明
国别省市:

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

1