CN112487037A - 缓存数据的处理方法、装置、计算机设备及存储介质 - Google Patents

缓存数据的处理方法、装置、计算机设备及存储介质 Download PDF

Info

Publication number
CN112487037A
CN112487037A CN202011445989.9A CN202011445989A CN112487037A CN 112487037 A CN112487037 A CN 112487037A CN 202011445989 A CN202011445989 A CN 202011445989A CN 112487037 A CN112487037 A CN 112487037A
Authority
CN
China
Prior art keywords
data
cache
cache data
detecting whether
database
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202011445989.9A
Other languages
English (en)
Inventor
翁丰平
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ping An International Smart City Technology Co Ltd
Original Assignee
Ping An International Smart City Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ping An International Smart City Technology Co Ltd filed Critical Ping An International Smart City Technology Co Ltd
Priority to CN202011445989.9A priority Critical patent/CN112487037A/zh
Publication of CN112487037A publication Critical patent/CN112487037A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24552Database cache management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/215Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2365Ensuring data consistency and integrity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2457Query processing with adaptation to user needs
    • G06F16/24578Query processing with adaptation to user needs using ranking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2471Distributed queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor

Abstract

本申请涉及数据处理技术领域,公开了一种缓存数据的处理方法,包括:监测到数据库中发生数据更新操作时,检测数据更新操作针对的目标数据是否更新成功;检测到目标数据更新成功时,删除目标数据在缓存区中的缓存数据;检测所述缓存数据是否删除失败;检测到所述缓存数据删除失败时,将所述缓存数据对应的关键值写入消息队列中;接收到所述消息队列发送的所述关键值时,删除基于所述关键值查询得到的缓存数据,并返回执行所述检测所述缓存数据是否删除失败的步骤。本申请还涉及区块链技术领域。本申请还公开了一种缓存数据的处理装置、计算机设备以及计算机可读存储介质。本申请保证了数据库数据与缓存数据之间的一致性。

Description

缓存数据的处理方法、装置、计算机设备及存储介质
技术领域
本申请涉及数据处理技术领域,尤其涉及一种缓存数据的处理方法、缓存数据的处理装置、计算机设备以及计算机可读存储介质。
背景技术
目前,存储系统在接收到数据请求时,首先检查请求数据是否在缓存区中,若是,直接把缓存的数据返回给相应的请求方,不再对数据库进行任何操作;如果请求的数据不在缓存区中,则到数据库中查找请求的数据,并将从数据库中查找到的数据返回给相应的请求方,同时将数据缓存一份到缓存区中。
然而,当数据库中的数据发生更新时,若对缓存区的原数据删除失败,则缓存区中依然保留有原数据,这样当存储系统有对应的数据请求时,获取到的仍然是缓存区中的原数据而非更新后的新数据,从而无法保证数据库与缓存之间的数据的一致性。
上述内容仅用于辅助理解本申请的技术方案,并不代表承认上述内容是现有技术。
发明内容
本申请的主要目的在于提供一种缓存数据的处理方法、缓存数据的处理装置、计算机设备以及计算机可读存储介质,旨在解决当数据库存储数据更新后,容易出现数据库数据与缓存数据不一致的情况的问题。
为实现上述目的,本申请提供一种缓存数据的处理方法,包括以下步骤:
监测到数据库中发生数据更新操作时,检测所述数据更新操作针对的目标数据是否更新成功;
检测到所述目标数据更新成功时,删除所述目标数据在缓存区中的缓存数据;
检测所述缓存数据是否删除失败;
检测到所述缓存数据删除失败时,将所述缓存数据对应的关键值写入消息队列中,以记录所述缓存数据对应的删除任务;
接收到所述消息队列发送的所述关键值时,删除基于所述关键值查询得到的缓存数据,并返回执行所述检测所述缓存数据是否删除失败的步骤。
进一步地,所述检测所述缓存数据是否删除失败的步骤之后,还包括:
检测到所述缓存数据删除失败时,记录所述缓存数据对应的删除失败次数;
检测所述删除失败次数是否大于预设次数;
若是,输出告警信息。
进一步地,所述检测所述删除失败次数是否大于预设次数的步骤包括:
检测所述缓存数据在预设时长内的删除失败次数是否大于预设次数。
进一步地,
所述检测到所述缓存数据删除失败时,将所述缓存数据对应的关键值写入消息队列中,以记录所述缓存数据对应的删除任务的步骤之后,还包括:
检测到所述消息队列中的所述关键值的数量大于预设阈值时,则输出告警信息。
进一步地,所述数据库为区块链的分布式数据库;所述监测到数据库中发生数据更新操作时,检测所述数据更新操作针对的目标数据是否更新成功的步骤包括:
监测到所述区块链的分布式数据库中发生数据更新操作时,向所述区块链的分布式数据库发送所述数据更新操作所针对的目标数据的更新查询信息,以检测所述数据更新操作针对的目标数据是否更新成功;
其中,当接收到所述区块链的分布式数据库基于所述更新查询信息反馈的确定响应时,则判定所述目标数据更新成功;当接收到所述区块链的分布式数据库基于所述更新查询信息反馈的否定响应时,则判定所述目标数据更新失败。
进一步地,所述监测到数据库中发生数据更新操作时,检测所述数据更新操作针对的目标数据是否更新成功的步骤之后,还包括:
检测到所述目标数据更新失败时,生成所述目标数据对应的更新失败提示信息。
进一步地,所述检测所述缓存数据是否删除失败的步骤之后,还包括:
检测到所述缓存数据删除成功时,在所述缓存区中生成更新后的所述目标数据对应的缓存数据。
为实现上述目的,本申请还提供一种缓存数据的处理装置,所述缓存数据的处理装置包括:
监测模块,用于监测到数据库中发生数据更新操作时,检测所述数据更新操作针对的目标数据是否更新成功;
删除模块,用于检测到所述目标数据更新成功时,删除所述目标数据在缓存区中的缓存数据;
判断模块,用于检测所述缓存数据是否删除失败;
写入模块,用于检测到所述缓存数据删除失败时,将所述缓存数据对应的关键值写入消息队列中,以记录所述缓存数据对应的删除任务;
处理模块,用于接收到所述消息队列发送的所述关键值时,删除基于所述关键值查询得到的缓存数据,并返回执行所述检测所述缓存数据是否删除失败的步骤。
为实现上述目的,本申请还提供一种计算机设备,所述计算机设备包括:
所述计算机设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的缓存数据的处理程序,所述缓存数据的处理程序被所述处理器执行时实现如上述缓存数据的处理方法的步骤。
为实现上述目的,本申请还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有缓存数据的处理程序,所述缓存数据的处理程序被处理器执行时实现如上述缓存数据的处理方法的步骤。
本申请提供的缓存数据的处理方法、缓存数据的处理装置、计算机设备以及计算机可读存储介质,通过建立对存区中删除失败的缓存数据的删除重试机制,在存储数据更新后,确保存储数据更新前缓存在缓存区中的缓存数据可以删除成功,从而使得数据请求方不会获取到更新前的存储数据,保证了数据库与缓存之间的数据的一致性。
附图说明
图1为本申请一实施例中缓存数据的处理方法步骤示意图;
图2为本申请一实施例的缓存数据的处理装置示意框图;
图3为本申请一实施例的计算机设备的结构示意框图。
本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
参照图1,在一实施例中,所述缓存数据的处理方法包括:
步骤S10、监测到数据库中发生数据更新操作时,检测所述数据更新操作针对的目标数据是否更新成功;
步骤S20、检测到所述目标数据更新成功时,删除所述目标数据在缓存区中的缓存数据;
步骤S30、检测所述缓存数据是否删除失败;
步骤S40、检测到所述缓存数据删除失败时,将所述缓存数据对应的关键值写入消息队列中,以记录所述缓存数据对应的删除任务;
步骤S50、接收到所述消息队列发送的所述关键值时,删除基于所述关键值查询得到的缓存数据,并返回执行所述检测所述缓存数据是否删除失败的步骤。
本实施例中,实施例的执行终端可以是计算机设备,也可以是一种缓存数据的处理装置。
如步骤S10所述:终端的系统中包括数据库和缓存区(如内存缓存),其中,所述缓存区用于缓存所述数据库中的数据。
可选的,终端可以监测数据库中是否有发生针对数据库中保存的数据的数据更新操作。其中,所述数据更新操作可以是数据修改操作(包括数据插入),也可以是数据删除操作。
可选的,当终端监测到数据库中有发生数据更新操作时,则将该数据更新操作所针对的数据库中的数据(即数据库数据)作为目标数据,并基于数据更新操作对应的具体操作方式,对目标数据进行数据操作。其中,当数据更新操作为数据修改操作时,则将修改后的目标数据作为更新后的目标数据;当数据更新操作为数据删除操作时,则直接从数据库中删除该目标数据。
进一步地,在基于数据更新操作对目标数据进行操作时,终端可以通过检测更新前后的目标数据是否一致,以检测数据更新操作是否执行成功。其中,当终端检测到数据更新操作执行成功时,则判定对数据库中的目标数据更新成功;当终端检测到数据更新操作执行失败时,则判定对数据库中的目标数据更新失败。
如步骤S20所述:当终端检测到数据库中有目标数据更新成功时,则查询该目标数据之前缓存在缓存区中的缓存数据。应当理解的是,当终端将数据库中的数据缓存到缓存区中时,会建立数据库数据和缓存数据之间的映射关系,基于映射关系,可以在缓存区中查询得到与数据库数据对应的缓存数据。
可选的,终端可以是将数据库数据在数据库中的key值(关键值),同时作为数据库数据对应的缓存数据在缓存区的关键值,以基于数据库数据与缓存数据均关联的关键值建立两者之间的映射关系。当然,终端也可以是为数据库数据对应的缓存数据分配新的关键值,然后只需建立数据库数据的关键值与缓存数据的关键值之间的映射关系即可,即根据数据库数据的关键值查询缓存数据的关键值,再基于缓存数据的关键值即可查询得到缓存数据。
这样,终端基于目标数据对应的关键值,即可在缓存区中查询与之对应的缓存数据。
当终端在缓存区查询得到目标数据对应的缓存数据时,则将查询得到的缓存数据从缓存区中删除。
如步骤S30所述:当终端对目标数据在缓存区中的缓存数据执行删除操作后,可以进一步检测该缓存数据是否删除失败。
可选的,终端可以根据该目标数据的关键值(或缓存数据对应的关键值)在缓存区中查询缓存数据;当在缓存区中查无数据时,则判定该缓存数据删除成功;当在缓存区中查询得到与该关键值对应的缓存数据时,则判定该缓存数据删除失败。
如步骤S40所述:可选的,将缓存数据对应的关键值记为第一关键值,当终端检测到当前删除的缓存数据删除失败时,则将删除失败的缓存数据对应的第一关键值写入消息队列(Message Queue,MQ)中。需要说明的是,消息队列是基础数据结构中“先进先出”的一种数据结构,而在本实施例中,消息队列是用于记录所述缓存数据对应的删除任务,即将第一关键值写入消息队列相当于是生成并记录一个待执行的删除任务。
其中,终端与消息队列之间建立有ACK(Acknowledge character)确认字符机制,当消息队列检测到队列中有新写入的关键值时,则会向终端发送确认字符。
可选的,当终端将第一关键值写入消息队列后,可以进一步检测之后的第一预设时长内是否有接收到消息队列发送的确认字符。当终端在第一预设时长内接收到消息队列发送的确认字符时,则判定第一关键值已成功写入消息队列中;当终端在第一预设时长内未接收到消息队列发送的确认字符时,则重新将第一关键值写入消息队列中。其中,所述第一预设时长可以根据实际情况需要设置,如1秒、3秒、5秒等。这样,可以确保第一关键值成功写入消息队列中。
可选的,若终端检测到当前删除的缓存数据从缓存区中成功删除时,则终端可以不作处理。在此之后,当终端接收到数据请求端针对目标数据(即更新后的目标数据)的数据请求时,检测到缓存区中不存在目标数据对应的缓存数据(此时更新前的目标数据对应的缓存数据已成功删除),则从数据库中获取目标数据发送至数据请求端,并将该目标数据缓存到缓存区中,生成对应的缓存数据(即更新后的目标数据对应的缓存数据)。应当理解的是,对于这一场景的实现,则之前用于更新目标数据的数据更新操作需为数据修改操作,而非数据删除操作。
如步骤S50所述:可选的,将消息队列中写入的关键值记为第二关键值(或者将消息队列发送的关键值记为第二关键值)。
可选的,当消息队列中保存有第二关键值时,则消息队列可以依据预设规则向终端发送第二关键值。其中,预设规则可以是接收到终端发送的第二关键值获取指令,也可以是每隔一个预设间隔时长则向终端发送一次第二关键值。
可选的,终端则可以实时监测本端的处理线程是否空闲,并当检测到当前存在空闲的处理线程时,则向消息队列发送第二关键值获取指令,以使消息队列可以向终端发送第二关键值。
可选的,当终端接收到消息队列发送的第二关键值时,则判定当前需要执行删除任务,并在缓存区中查询与第二关键值匹配(或者一致)的第一关键值,然后进一步确定查询得到的第一关键值对应的缓存数据,即为第二关键值对应的缓存数据。
进一步地,终端在缓存区中查询得到第二关键值对应的缓存数据后,则该缓存数据(即与第二关键值匹配的第一关键值所对应的缓存数据)从缓存区中删除。然后终端返回执行所述检测所述缓存数据是否删除失败的步骤(即返回执行步骤S30)。
可选的,当终端再次执行步骤S30之后,若再次检测到该缓存数据删除失败时,则再次将所述缓存数据对应的第一关键值写入消息队列中,如此循环往复,直至将该缓存数据从缓存区中成功删除。
在一实施例中,通过建立对存区中删除失败的缓存数据的删除重试机制,在存储数据更新后,确保存储数据更新前缓存在缓存区中的缓存数据可以删除成功,从而使得数据请求方不会获取到更新前的存储数据,保证了数据库与缓存之间的数据的一致性。
在一实施例中,在上述实施例基础上,所述检测所述缓存数据是否删除失败的步骤之后,还包括:
步骤S60、检测到所述缓存数据删除失败时,记录所述缓存数据对应的删除失败次数;
步骤S61、检测所述删除失败次数是否大于预设次数;
步骤S62、若是,输出告警信息。
本实施例中,当终端检测到缓存数据删除失败时,除了将所述缓存数据对应的第一关键值写入消息队列中,同时还可以记录该缓存数据对应的删除失败次数。
进一步地,当终端每次检测到有缓存数据对应的删除失败次数更新时,则检测当前更新的删除失败次数是否大于预设次数。其中,所述预设次数大于零,可根据实际情况需要具体设置,如设置为1次、3次等。
可选的,当终端检测到当前更新的删除失败次数小于或等于预设次数时,则终端可以不作处理;当终端检测到当前更新的删除失败次数大于预设次数时,则终端生成缓存服务宕机的告警信息,并将告警信息输出至工程师的关联设备,以提示工程师及时排障和修复缓存服务。
其中,终端保存有数据维护工程师的联系方式,基于联系方式可以查询得到工程师的关联设备。
可选的,告警信息可以是以邮件、短信等方式进行发送的。
这样,通过实现对缓存服务是否宕机的有效判断,从而可以基于此提示相关工程师进行及时修复缓存服务,使得需要删除的缓存数据可以成功删除,进而保证了数据库与缓存之间的数据的一致性。
在一实施例中,在上述实施例基础上,所述检测所述删除失败次数是否大于预设次数的步骤包括:
步骤S70、检测所述缓存数据在预设时长内的删除失败次数是否大于预设次数。
本实施例中,终端可以是在检测到缓存数据删除失败时,开始记录时间,当终端检测到记录的时间到达预设时长时,则获取该缓存数据在预设时长内所记录的删除失败次数。其中,为了与第一预设时长进行区分,所述预设时长为第二预设时长,所述第二预设时长的取值可以根据实际情况需要设置,如设置一分钟、三分钟等。
应当理解的是,在此期间内终端可以不断从消息队列获取第二关键值,以对第二关键值对应的缓存数据进行删除重试。
进一步地,终端检测在预设时长内记录的缓存数据的删除失败次数是否大于预设次数;若否,则终端不作处理;若是,则终端生成缓存服务宕机的告警信息,并将告警信息输出至工程师的关联设备。
这样,可以及时提示相关工程师进行修复缓存服务,使得需要删除的缓存数据可以尽快成功删除,进而保证了数据库与缓存之间的数据的一致性。
在一实施例中,在上述实施例基础上,所述检测到所述缓存数据删除失败时,将所述缓存数据对应的关键值写入消息队列中,以记录所述缓存数据对应的删除任务的步骤之后,还包括:
步骤S80、检测到所述消息队列中的所述关键值的数量大于预设阈值时,则输出告警信息。
本实施例中,在终端执行步骤S40之后,终端可以定时向消息对发送询问信息,以向消息队列询问队列中保存的第二关键值的数量,并基于消息队列反馈的第二关键值的数量,检测第二关键值的数量是否大于预设阈值。其中,所述预设阈值可以根据实际情况需要设置,如设置5个、10个等。
可选的,当终端检测到所述消息队列中的第二关键值的数量大于预设阈值时,则判定目前存在多个不同的缓存数据删除失败的情况,即可判定缓存服务宕机,并生成缓存服务宕机的告警信息,然后将告警信息输出至工程师的关联设备。
这样,可以更为准确地判断缓存服务是否宕机,并基于此提示工程师及时修复缓存服务。而通过实现对缓存服务是否宕机的有效判断,从而可以基于此提示相关工程师进行及时修复缓存服务,使得需要删除的缓存数据可以成功删除,进而保证了数据库与缓存之间的数据的一致性。
在一实施例中,在上述实施例基础上,所述数据库为区块链的分布式数据库;所述监测到数据库中发生数据更新操作时,检测所述数据更新操作针对的目标数据是否更新成功的步骤包括:
步骤S90、监测到所述区块链的分布式数据库中发生数据更新操作时,向所述区块链的分布式数据库发送所述数据更新操作所针对的目标数据的更新查询信息,以检测所述数据更新操作针对的目标数据是否更新成功;
其中,当接收到所述区块链的分布式数据库基于所述更新查询信息反馈的确定响应时,则判定所述目标数据更新成功;当接收到所述区块链的分布式数据库基于所述更新查询信息反馈的否定响应时,则判定所述目标数据更新失败。
本实施例中,所述数据库为区块链的分布式数据库,即终端的存储数据是存储在基于区块链技术构建的分布式数据库中。
区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层。
区块链底层平台可以包括用户管理、基础服务、智能合约以及运营监控等处理模块。其中,用户管理模块负责所有区块链参与者的身份信息管理,包括维护公私钥生成(账户管理)、密钥管理以及用户真实身份和区块链地址对应关系维护(权限管理)等,并且在授权的情况下,监管和审计某些真实身份的交易情况,提供风险控制的规则配置(风控审计);基础服务模块部署在所有区块链节点设备上,用来验证业务请求的有效性,并对有效请求完成共识后记录到存储上,对于一个新的业务请求,基础服务先对接口适配解析和鉴权处理(接口适配),然后通过共识算法将业务信息加密(共识管理),在加密之后完整一致的传输至共享账本上(网络通信),并进行记录存储;智能合约模块负责合约的注册发行以及合约触发和合约执行,开发人员可以通过某种编程语言定义合约逻辑,发布到区块链上(合约注册),根据合约条款的逻辑,调用密钥或者其它的事件触发执行,完成合约逻辑,同时还提供对合约升级注销的功能;运营监控模块主要负责产品发布过程中的部署、配置的修改、合约设置、云适配以及产品运行中的实时状态的可视化输出,例如:告警、监控网络情况、监控节点设备健康状态等。
可选的,终端可以监测分布式数据库对应的区块链网络中任一节点的区块链是否有发生针对数据库中保存的数据的数据更新操作,并在检测到区块链的分布式数据库中有发生数据更新操作时,则可以向区块链网络中任一节点的区块链发送目标数据的更新查询信息,以向该区块链查询当前数据更新操作所针对的目标数据是否有更新。
可选的,当分布式数据库接收到终端发送的目标数据的更新查询信息时,可以检测当前数据更新操作所针对的目标数据是否有在区块链网络中进行全局更新;若是,则判定目标数据更新成功,进而向终端发送目标数据的肯定响应,以作为所述更新查询信息的反馈信息;若否,则判定目标数据更新失败,进而向终端发送目标数据的否定响应,以作为所述更新查询信息的反馈信息。
可选的,终端当接收到所述区块链的分布式数据库基于所述更新查询信息反馈的确定响应时,则判定所述目标数据更新成功;当终端接收到所述区块链的分布式数据库基于所述更新查询信息反馈的否定响应时,则判定所述目标数据更新失败。
这样,通过利用区块链保证存储数据的安全性的同时,实现了对存储数据的更新检测,使得可以进一步及时将相应的缓存数据删除,从而保证了存储数据与缓存数据之间的数据的一致性。
在一实施例中,在上述实施例基础上,所述监测到数据库中发生数据更新操作时,检测所述数据更新操作针对的目标数据是否更新成功的步骤之后,还包括:
步骤S100、检测到所述目标数据更新失败时,生成所述目标数据对应的更新失败提示信息。
本实施例中,当终端检测到数据更新操作针对的目标数据更新失败时,则可以生成目标数据对应的更新失败提示信息,并将更新失败提示信息输出至负责数据库维护的工程师的关联设备,以提示相关工程师及时排查目标数据更新失败的原因,从而可以及时对数据库进行修复,使得数据库服务可以尽快恢复正常,从而尽可能避免因数据库异常而造成的损失。
在一实施例中,在上述实施例基础上,所述监测到数据库中发生数据更新操作时,检测所述数据更新操作针对的目标数据是否更新成功的步骤之后,还包括:
步骤S110、检测到所述缓存数据删除成功时,在所述缓存区中生成更新后的所述目标数据对应的缓存数据。
本实施例中,当终端检测到缓存数据(即更新前的目标数据对应的缓存数据)删除成功时,则可以将更新后的目标数据复制至缓存区中,从而在缓存区中生成更新后的目标数据对应的缓存数据。应当理解的是,对于这一场景的实现,则之前用于更新目标数据的数据更新操作需为数据修改操作,而非数据删除操作,即若之前用于更新目标数据的数据更新操作为数据删除操作时,则无需执行步骤S110。
这样,当数据库中有数据更新时,即可实现数据库与缓存之间的数据的一致性。
参照图2,本申请实施例中还提供一种缓存数据的处理装置10,包括:
监测模块11,用于监测到数据库中发生数据更新操作时,检测所述数据更新操作针对的目标数据是否更新成功;
删除模块12,用于检测到所述目标数据更新成功时,删除所述目标数据在缓存区中的缓存数据;
判断模块13,用于检测所述缓存数据是否删除失败;
写入模块14,用于检测到所述缓存数据删除失败时,将所述缓存数据对应的关键值写入消息队列中,以记录所述缓存数据对应的删除任务;
处理模块15,用于接收到所述消息队列发送的所述关键值时,删除基于所述关键值查询得到的缓存数据,并返回执行所述检测所述缓存数据是否删除失败的步骤。
参照图3,本申请实施例中还提供一种计算机设备,该计算机设备可以是服务器,其内部结构可以如图3所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于缓存数据的处理程序。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种缓存数据的处理方法。
本领域技术人员可以理解,图3中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定。
此外,本申请还提出一种计算机可读存储介质,所述计算机可读存储介质包括缓存数据的处理程序,所述缓存数据的处理程序被处理器执行时实现如以上实施例所述的缓存数据的处理方法的步骤。可以理解的是,本实施例中的计算机可读存储介质可以是易失性可读存储介质,也可以为非易失性可读存储介质。
综上所述,为本申请实施例中提供的缓存数据的处理方法、缓存数据的处理装置、计算机设备和存储介质,通过建立对存区中删除失败的缓存数据的删除重试机制,在存储数据更新后,确保存储数据更新前缓存在缓存区中的缓存数据可以删除成功,从而使得数据请求方不会获取到更新前的存储数据,保证了数据库与缓存之间的数据的一致性。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的和实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM通过多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双速据率SDRAM(SSRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其它变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其它要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。
以上所述仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其它相关的技术领域,均同理包括在本申请的专利保护范围内。

Claims (10)

1.一种缓存数据的处理方法,其特征在于,包括:
监测到数据库中发生数据更新操作时,检测所述数据更新操作针对的目标数据是否更新成功;
检测到所述目标数据更新成功时,删除所述目标数据在缓存区中的缓存数据;
检测所述缓存数据是否删除失败;
检测到所述缓存数据删除失败时,将所述缓存数据对应的关键值写入消息队列中,以记录所述缓存数据对应的删除任务;
接收到所述消息队列发送的所述关键值时,删除基于所述关键值查询得到的缓存数据,并返回执行所述检测所述缓存数据是否删除失败的步骤。
2.如权利要求1所述的缓存数据的处理方法,其特征在于,所述检测所述缓存数据是否删除失败的步骤之后,还包括:
检测到所述缓存数据删除失败时,记录所述缓存数据对应的删除失败次数;
检测所述删除失败次数是否大于预设次数;
若是,输出告警信息。
3.如权利要求2所述的缓存数据的处理方法,其特征在于,所述检测所述删除失败次数是否大于预设次数的步骤包括:
检测所述缓存数据在预设时长内的删除失败次数是否大于预设次数。
4.如权利要求1所述的缓存数据的处理方法,其特征在于,所述检测到所述缓存数据删除失败时,将所述缓存数据对应的关键值写入消息队列中,以记录所述缓存数据对应的删除任务的步骤之后,还包括:
检测到所述消息队列中的所述关键值的数量大于预设阈值时,则输出告警信息。
5.如权利要求1所述的缓存数据的处理方法,其特征在于,所述数据库为区块链的分布式数据库;所述监测到数据库中发生数据更新操作时,检测所述数据更新操作针对的目标数据是否更新成功的步骤包括:
监测到所述区块链的分布式数据库中发生数据更新操作时,向所述区块链的分布式数据库发送所述数据更新操作所针对的目标数据的更新查询信息,以检测所述数据更新操作针对的目标数据是否更新成功;
其中,当接收到所述区块链的分布式数据库基于所述更新查询信息反馈的确定响应时,则判定所述目标数据更新成功;当接收到所述区块链的分布式数据库基于所述更新查询信息反馈的否定响应时,则判定所述目标数据更新失败。
6.如权利要求1或5所述的缓存数据的处理方法,其特征在于,所述监测到数据库中发生数据更新操作时,检测所述数据更新操作针对的目标数据是否更新成功的步骤之后,还包括:
检测到所述目标数据更新失败时,生成所述目标数据对应的更新失败提示信息。
7.如权利要求1所述的缓存数据的处理方法,其特征在于,所述检测所述缓存数据是否删除失败的步骤之后,还包括:
检测到所述缓存数据删除成功时,在所述缓存区中生成更新后的所述目标数据对应的缓存数据。
8.一种缓存数据的处理装置,其特征在于,包括:
监测模块,用于监测到数据库中发生数据更新操作时,检测所述数据更新操作针对的目标数据是否更新成功;
删除模块,用于检测到所述目标数据更新成功时,删除所述目标数据在缓存区中的缓存数据;
判断模块,用于检测所述缓存数据是否删除失败;
写入模块,用于检测到所述缓存数据删除失败时,将所述缓存数据对应的关键值写入消息队列中,以记录所述缓存数据对应的删除任务;
处理模块,用于接收到所述消息队列发送的所述关键值时,删除基于所述关键值查询得到的缓存数据,并返回执行所述检测所述缓存数据是否删除失败的步骤。
9.一种计算机设备,其特征在于,所述计算机设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的缓存数据的处理程序,所述缓存数据的处理程序被所述处理器执行时实现如权利要求1至7中任一项所述的缓存数据的处理方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有缓存数据的处理程序,所述缓存数据的处理程序被处理器执行时实现如权利要求1至7中任一项所述的缓存数据的处理方法的步骤。
CN202011445989.9A 2020-12-08 2020-12-08 缓存数据的处理方法、装置、计算机设备及存储介质 Pending CN112487037A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011445989.9A CN112487037A (zh) 2020-12-08 2020-12-08 缓存数据的处理方法、装置、计算机设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011445989.9A CN112487037A (zh) 2020-12-08 2020-12-08 缓存数据的处理方法、装置、计算机设备及存储介质

Publications (1)

Publication Number Publication Date
CN112487037A true CN112487037A (zh) 2021-03-12

Family

ID=74941285

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011445989.9A Pending CN112487037A (zh) 2020-12-08 2020-12-08 缓存数据的处理方法、装置、计算机设备及存储介质

Country Status (1)

Country Link
CN (1) CN112487037A (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112799608A (zh) * 2021-04-13 2021-05-14 北京华益精点生物技术有限公司 血糖数据的存储方法、系统和电子设备
CN113626457A (zh) * 2021-08-19 2021-11-09 福建天晴数码有限公司 缓存删除重试机制实现数据库与缓存一致性方法及系统
CN113641711A (zh) * 2021-08-17 2021-11-12 天津卓盛云科技有限公司 一种针对saas租户的数据缓存处理方法、装置及介质
CN115599310A (zh) * 2022-11-30 2023-01-13 苏州浪潮智能科技有限公司(Cn) 存储节点中存储资源的控制方法、装置以及存储节点
CN117193670A (zh) * 2023-11-06 2023-12-08 之江实验室 一种清除缓存的方法、装置、存储介质以及电子设备
CN117708179A (zh) * 2024-02-02 2024-03-15 成都深瑞同华科技有限公司 电力综合监控系统测点数据缓存方法、装置、设备及介质
CN117708179B (zh) * 2024-02-02 2024-05-03 成都深瑞同华科技有限公司 电力综合监控系统测点数据缓存方法、装置、设备及介质

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112799608A (zh) * 2021-04-13 2021-05-14 北京华益精点生物技术有限公司 血糖数据的存储方法、系统和电子设备
CN112799608B (zh) * 2021-04-13 2021-08-03 北京华益精点生物技术有限公司 血糖数据的存储方法、系统和电子设备
CN113641711A (zh) * 2021-08-17 2021-11-12 天津卓盛云科技有限公司 一种针对saas租户的数据缓存处理方法、装置及介质
CN113626457A (zh) * 2021-08-19 2021-11-09 福建天晴数码有限公司 缓存删除重试机制实现数据库与缓存一致性方法及系统
CN115599310A (zh) * 2022-11-30 2023-01-13 苏州浪潮智能科技有限公司(Cn) 存储节点中存储资源的控制方法、装置以及存储节点
CN117193670A (zh) * 2023-11-06 2023-12-08 之江实验室 一种清除缓存的方法、装置、存储介质以及电子设备
CN117193670B (zh) * 2023-11-06 2024-01-30 之江实验室 一种清除缓存的方法、装置、存储介质以及电子设备
CN117708179A (zh) * 2024-02-02 2024-03-15 成都深瑞同华科技有限公司 电力综合监控系统测点数据缓存方法、装置、设备及介质
CN117708179B (zh) * 2024-02-02 2024-05-03 成都深瑞同华科技有限公司 电力综合监控系统测点数据缓存方法、装置、设备及介质

Similar Documents

Publication Publication Date Title
CN112487037A (zh) 缓存数据的处理方法、装置、计算机设备及存储介质
CN112632575A (zh) 业务系统的权限管理方法、装置、计算机设备及存储介质
CN110177007B (zh) 实现网关异地多活的方法、装置、计算机设备及存储介质
CN110933163B (zh) 区块链合约部署方法、装置、设备以及存储介质
CN110225013B (zh) 服务证书的监控和更新系统
CN112153155B (zh) 服务器集群中的服务请求方法、装置、计算机设备及介质
KR100843781B1 (ko) 보수·진단 데이터 축적 서버, 보수·진단 데이터의축적·취득 시스템, 보수·진단 데이터의 축적·제공 시스템
CN110990183B (zh) 数据库集群的异常检测方法、装置、计算机可读存储介质
CN110597541B (zh) 基于区块链的接口更新处理方法、装置、设备及存储介质
WO2022105139A1 (zh) 数据库的数据对象关系图谱生成方法、装置、设备及介质
CN112383535B (zh) 哈希传递攻击行为的检测方法、装置和计算机设备
CN113242281A (zh) 一种灰度发布方法、装置、设备及存储介质
CN112905556B (zh) 分布式系统的目录租约管理方法、装置、设备及存储介质
DE102018101535A1 (de) Gesicherte Daisy-Chain-Übermittlung
CN108366132B (zh) 服务器间的服务管理方法、装置、计算机设备和存储介质
CN112613993A (zh) 交易数据处理方法、装置、计算机设备和存储介质
CN113572746A (zh) 数据处理方法、装置、电子设备及存储介质
CN110149421B (zh) 域名系统的异常监测方法、系统、装置和计算机设备
CN113660229B (zh) 基于rpa的多系统单点登录方法、装置、设备及介质
CN112070585A (zh) 订单状态统一管理方法、装置、计算机设备和存储介质
CN112395125A (zh) 页面报错的通知方法、装置、计算机设备及存储介质
CN112328285A (zh) 系统新功能生产更新方法、装置、设备及介质
CN112667499A (zh) 页面组件的测试方法、装置、计算机设备及存储介质
CN111797410A (zh) 一种多服务器授权控制方法和装置
CN115225636A (zh) 请求处理方法、装置、计算机设备和存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination