CN113434525A - 缓存数据的更新方法和装置、存储介质及电子装置 - Google Patents
缓存数据的更新方法和装置、存储介质及电子装置 Download PDFInfo
- Publication number
- CN113434525A CN113434525A CN202110707341.2A CN202110707341A CN113434525A CN 113434525 A CN113434525 A CN 113434525A CN 202110707341 A CN202110707341 A CN 202110707341A CN 113434525 A CN113434525 A CN 113434525A
- Authority
- CN
- China
- Prior art keywords
- database
- cache data
- identifier
- data
- updating
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 55
- 238000004590 computer program Methods 0.000 claims description 12
- 230000008569 process Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 6
- 230000005611 electricity Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种缓存数据的更新方法和装置、存储介质及电子装置,其中,上述方法包括:获取第一数据库对应的操作日志,其中,操作日志用于指示更新后的第一缓存数据和第一缓存数据对应的第一标识;根据操作日志确定第一缓存数据对应的第一标识,并确定第二数据库中是否存在与第一标识对应的第二缓存数据;在确定第二数据库中存在与第一标识一致的第二标识的情况下,将第二数据库中与第二标识对应的第二缓存数据更新第一缓存数据。采用上述技术方案,解决了相关技术中,第一数据库成功更新数据之后,根据第一数据库的数据更新第二数据库的数据的过程中,如果操作不当会导致,会导致第一数据库的数据与第二数据库的数据不一致等问题。
Description
技术领域
本发明涉及通信领域,具体而言,涉及一种缓存数据的更新方法和装置、存储介质及电子装置。
背景技术
随着科学技术的进步和互联网的发展,随着应用端APP版本的快速迭代,功能的不断完善,用户量在日渐提升,用户的访问量也越来越大,为了提升APP的性能,需要把一些热数据与一些变更不频繁的数据,例如,字典类型数据,放入缓存数据库以此来提升接口的性能,在查询目标数据的过程中,具体操作步骤为:先在缓存数据库查询目标数据,如果缓存数据库中存在目标数据,则直接给用户返回目标数据,如果缓存数据库中不存在目标数据,则先从MYSQL数据库中查询目标数据,然后将目标数据放进缓存数据库中。但是缓存数据库中的数据有一定几率发生变更,当数据变更之后,要更新MYSQL数据库同时也要删除缓存数据库中的数据,但是更新MYSQL数据库和删除缓存数据库中的数据是两个操作,如果操作不当会导致缓存数据库中的数据与MYSQL数据库中的数据不一致,从而影响用户的体验。
针对相关技术中,第一数据库成功更新数据之后,根据第一数据库的数据更新第二数据库的数据的过程中,如果操作不当会导致,会导致第一数据库的数据与第二数据库的数据不一致等问题,尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种缓存数据的更新方法和装置、存储介质及电子装置,以至少解决相关技术中,第一数据库成功更新数据之后,根据第一数据库的数据更新第二数据库的数据的过程中,如果操作不当会导致,会导致第一数据库的数据与第二数据库的数据不一致等问题。
根据本发明实施例的一个实施例,提供了一种缓存数据的更新方法,包括:获取第一数据库对应的操作日志,其中,所述操作日志用于指示更新后的第一缓存数据和第一缓存数据对应的第一标识;根据所述操作日志确定所述第一缓存数据对应的第一标识,并确定第二数据库中是否存在与所述第一标识一致的第二标识;在确定所述第二数据库中存在与所述第一标识一致的第二标识的情况下,将所述第二数据库中与所述第二标识对应的第二缓存数据更新所述第一缓存数据。
在一个示例性实施例中,获取第一数据库对应的操作日志,包括:在所述第一数据库接收到更新第三缓存数据的操作的情况下,指示所述第一数据库生成所述操作日志,其中,所述第三缓存数据为第一缓存数据执行更新操作前的数据;在所述第一数据库成功生成所述操作日志的情况下,获取所述操作日志。
在一个示例性实施例中,在确定所述第二数据库中存在与所述第一标识一致的第二标识的情况下,将所述第二数据库中与所述第二标识对应的第二缓存数据更新所述第一缓存数据之后,所述方法还包括:确定所述第二数据库是否成功将第二缓存数据更新为所述第一缓存数据;在所述第二数据库未成功将第二缓存数据更新为所述第一缓存数据的情况下,将消费信息保存至所述第二数据库对应的消息队列,其中,所述消费信息用于指示将所述第二数据库中的第二缓存数据更新为所述第一缓存数据。
在一个示例性实施例中,在所述第二数据库未成功将第二缓存数据更新为所述第一缓存数据的情况下,将消费信息保存至消息队列之后,所述方法还包括:指示所述消息队列按照预设方式向所述第二数据库发送所述消费消息;在接收到所述消息队列发送的消费消息的情况下,根据所述消费消息将所述第二数据库中的第二缓存数据更新为所述第一缓存数据。
在一个示例性实施例中,确定所述第二数据库是否将第二缓存数据更新为所述第一缓存数据之后,所述方法还包括:在确定所述第二数据库成功将第二缓存数据更新为所述第一缓存数据的情况下,生成更新成功标识,其中,所述更新成功标识用于指示所述第二数据库成功将第二缓存数据更新为所述第一缓存数据;将所述更新成功标识发送至所述第一数据库对应的页面。
在一个示例性实施例中,根据所述操作日志确定所述第一缓存数据对应的第一标识,并确定第二数据库中是否存在与所述第一标识一致的第二标识,包括:在确定所述第二数据库中不存在与所述第一标识一致的第二标识的情况下,删除所述操作日志,并向所述第一数据库对应的页面发送提示信息,其中,所述提示信息用于指示所述第二数据库中不存在与所述第一标识一致的第二标识。
根据本发明实施例的另一个实施例,还提供了一种缓存数据的更新装置,包括:获取模块,用于获取第一数据库对应的操作日志,其中,所述操作日志用于指示更新后的第一缓存数据和第一缓存数据对应的第一标识;确定模块,用于根据所述操作日志确定所述第一缓存数据对应的第一标识,并确定第二数据库中是否存在与所述第一标识一致的第二标识;更新模块,用于在确定所述第二数据库中存在与所述第一标识一致的第二标识的情况下,将所述第二数据库中与所述第二标识对应的第二缓存数据更新所述第一缓存数据。
在一个示例性实施例中,获取模块,还用于在所述第一数据库接收到更新第三缓存数据的操作的情况下,指示所述第一数据库生成所述操作日志,其中,所述第三缓存数据为第一缓存数据执行更新操作前的数据;在所述第一数据库成功生成所述操作日志的情况下,获取所述操作日志。
根据本发明实施例的又一方面,还提供了一种计算机可读的存储介质,该计算机可读的存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述缓存数据的更新方法。
根据本发明实施例的又一方面,还提供了一种电子装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,上述处理器通过计算机程序执行上述的缓存数据的更新方法。
在本发明实施例中,获取第一数据库对应的操作日志,其中,操作日志用于指示更新后的第一缓存数据和第一缓存数据对应的第一标识;根据操作日志确定第一缓存数据对应的第一标识,并确定第二数据库中是否存在与第一标识对应的第二缓存数据;在确定第二数据库中存在与第一标识一致的第二标识的情况下,将第二数据库中与第二标识对应的第二缓存数据更新第一缓存数据,即通过获取第一数据库更新缓存数据后对应的操作日志,通过操作日志获取第一缓存数据对应的第一标识,将第二数据库中与第一标识一致的第二标识对应的第二缓存数据更新第一缓存数据,采用上述技术方案,解决了相关技术中,第一数据库成功更新数据之后,根据第一数据库的数据更新第二数据库的数据的过程中,如果操作不当会导致,会导致第一数据库的数据与第二数据库的数据不一致等问题,采用订阅操作日志方式可以避免第一数据库的数据与第二数据库的数据不一致的问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是本发明实施例的一种缓存数据的更新方法的计算机终端的硬件结构框图;
图2是根据本发明实施例的缓存数据的更新方法的流程图;
图3是根据本发明实施例的缓存数据的更新方法的时序图;
图4是根据本发明实施例的缓存数据的更新方法的示意图;
图5是根据本发明实施例的一种缓存数据的更新装置的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
本申请实施例所提供的方法实施例可以在计算机终端、计算机终端或者类似的运算装置中执行。以运行在计算机终端上为例,图1是本发明实施例的一种缓存数据的更新方法的计算机终端的硬件结构框图。如图1所示,计算机终端可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)和用于存储数据的存储器104,在一个示例性实施例中,上述计算机终端还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述计算机终端的结构造成限定。例如,计算机终端还可包括比图1中所示更多或者更少的组件,或者具有与图1所示等同功能或比图1所示功能更多的不同的配置。
存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本发明实施例中的缓存数据的更新方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
在本实施例中提供了一种缓存数据的更新方法,应用于上述计算机终端,图2是根据本发明实施例的缓存数据的更新方法的流程图,该流程包括如下步骤:
步骤S202,获取第一数据库对应的操作日志,其中,所述操作日志用于指示更新后的第一缓存数据和第一缓存数据对应的第一标识;
步骤S204,根据所述操作日志确定所述第一缓存数据对应的第一标识,并确定第二数据库中是否存在与所述第一标识一致的第二标识;
步骤S206,在确定所述第二数据库中存在与所述第一标识一致的第二标识的情况下,将所述第二数据库中与所述第二标识对应的第二缓存数据更新所述第一缓存数据。
通过上述步骤,获取第一数据库对应的操作日志,其中,操作日志用于指示更新后的第一缓存数据和第一缓存数据对应的第一标识;根据操作日志确定第一缓存数据对应的第一标识,并确定第二数据库中是否存在与第一标识对应的第二缓存数据;在确定第二数据库中存在与第一标识一致的第二标识的情况下,将第二数据库中与第二标识对应的第二缓存数据更新第一缓存数据,即通过获取第一数据库更新缓存数据后对应的操作日志,通过操作日志获取第一缓存数据对应的第一标识,将第二数据库中与第一标识一致的第二标识对应的第二缓存数据更新第一缓存数据,采用上述技术方案,解决了相关技术中,第一数据库成功更新数据之后,根据第一数据库的数据更新第二数据库的数据的过程中,如果操作不当会导致,会导致第一数据库的数据与第二数据库的数据不一致等问题,采用订阅操作日志方式可以避免第一数据库的数据与第二数据库的数据不一致的问题。
在一个示例性实施例中,所述操作日志包括:Binlog日志,第一数据库包括:MYSQL数据库,Binlog日志全称为binary日志,是二进制文件,主要记录了MYSQL数据库在进行DML数据操作语言过程中的操作日志。
在一个示例性实施例中,在所述第一数据库接收到更新第三缓存数据的操作的情况下,指示所述第一数据库生成所述操作日志,其中,所述第三缓存数据为第一缓存数据执行更新操作前的数据;在所述第一数据库成功生成所述操作日志的情况下,获取所述操作日志。
也就是说,在目标对象将第一数据库中的第三缓存数据更新为第一缓存数据的情况下,第一数据库根据目标对象对第一数据库中的第三缓存数据进行更新的操作生成操作日志,其中,操作日志用于指示第一缓存数据和第一缓存数据对应的第一标识;在确定目标对象成功将第一数据库中的第三缓存数据更新为第一缓存数据的情况下,获取操作日志;在确定目标对象成功将第一数据库中的第三缓存数据未更新为第一缓存数据的情况下,禁止获取操作日志。
在一个示例性实施例中,在确定所述第二数据库中存在与所述第一标识一致的第二标识的情况下,将所述第二数据库中与所述第二标识对应的第二缓存数据更新所述第一缓存数据之后,确定所述第二数据库是否成功将第二缓存数据更新为所述第一缓存数据;在所述第二数据库未成功将第二缓存数据更新为所述第一缓存数据的情况下,将消费信息保存至所述第二数据库对应的消息队列,其中,所述消费信息用于指示将所述第二数据库中的第二缓存数据更新为所述第一缓存数据。
换言之,将所述第二数据库中与所述第二标识对应的第二缓存数据更新所述第一缓存数据之后,确定第二数据库是否成功将第二缓存数据更新所述第一缓存数据,在确定第二数据库成功将第二缓存数据更新所述第一缓存数据的情况下,向所述移动中的显示界面返回更新成功标识;在确定第二数据库未成功将第二缓存数据更新所述第一缓存数据的情况下,生成消费信息,并将所述消费信息放置在消息列表中,其中,消息列表可以定时向第二数据库发送消费信息,即可以达到对第二数据库中的第二缓存数据更新失败之后的补偿。
在一个示例性实施例中,在所述第二数据库未成功将第二缓存数据更新为所述第一缓存数据的情况下,将消费信息保存至消息队列之后,指示所述消息队列按照预设方式向所述第二数据库发送所述消费消息;在接收到所述消息队列发送的消费消息的情况下,根据所述消费消息将所述第二数据库中的第二缓存数据更新为所述第一缓存数据。
具体的,消息列表可以定时向第二数据库发送消费信息,消息队列根据预先设置的时间间隔向第二数据库发送消费信息,在接收到消费信息的情况下,将所述第二数据库中的第二缓存数据更新为所述第一缓存数据。
进一步的,在预设情况下,消息队列停止发送消费信息,其中,所述预设情况至少包括以下之一:确定所述第二数据库中的第二缓存数据成功更新为所述第一缓存数据;达到预设发送次数。
在一个示例性实施例中,确定所述第二数据库是否将第二缓存数据更新为所述第一缓存数据之后,在确定所述第二数据库成功将第二缓存数据更新为所述第一缓存数据的情况下,生成更新成功标识,其中,所述更新成功标识用于指示所述第二数据库成功将第二缓存数据更新为所述第一缓存数据;将所述更新成功标识发送至所述第一数据库对应的页面。
也就是说,在确定所述第二数据库成功将第二缓存数据更新为所述第一缓存数据的情况下,生成更新成功标识,将更新成功标识发送至述第一数据库对应的页面进行显示,以使目标对象根据更新成功标识确定第二数据库成功将第二缓存数据更新为所述第一缓存数据。
在一个示例性实施例中,根据所述操作日志确定所述第一缓存数据对应的第一标识,并确定第二数据库中是否存在与所述第一标识一致的第二标识,包括:在确定所述第二数据库中不存在与所述第一标识一致的第二标识的情况下,删除所述操作日志,并向所述第一数据库对应的页面发送提示信息,其中,所述提示信息用于指示所述第二数据库中不存在与所述第一标识一致的第二标识。
换言之,在第一数据库的第三缓存数据更新成第一缓存数据的情况下,确定第二数据库中是否存在与所述第一标识一致的第二标识,也可以理解为,确定第二数据库中是否存在与第三缓存数据一致的第二缓存数据,在第二数据库中不存在与第三缓存数据一致的第二缓存数据的情况下,所述第二数据库不进行更新操作,并将所述操作日志进行删除,并向第一数据库对应的页面发送提示信息,以使所述目标对象根据提示信息确定第二数据库中的不存在与第一标识一致的第二标识,第二数据库可以不进行更新操作。
为了更好的理解上述缓存数据的更新方法的过程,以下再结合可选实施例对上述缓存数据的更新的实现方法流程进行说明,但不用于限定本发明实施例的技术方案。
在本实施例中提供了一种缓存数据的更新方法,图3是根据本发明实施例的缓存数据的更新方法的时序图,如图3所示,具体如下步骤:
步骤S301:目标对象登录H5页面(相当于上述实施例中的页面);
步骤S302:在所述H5页面上修改MYSQL数据库(相当于上述实施例中的第一数据库)中的第一数据(相当于上述实施例中的第三缓存数据),将修改后的第二数据(相当于上述实施例中的第一缓存数据)发送至服务器;
步骤S303:根据修改后的第二数据更新MYSQL数据库;
步骤S304:更新MYSQL数据库之后,记录对应的binlog日志(相当于上述实施例中的操作日志);
步骤S305:将所述binlog日志发送至消息服务;
步骤S306:消息服务根据binlog日志更新redis(相当于上述实施例中的第二数据库)中的第三数据(相当于上述实施例中的第二缓存数据);
步骤S307:redis向消息服务返回更新成功的消息;
步骤S308:消息服务向服务器返回更新成功的消息;
步骤S309:向服务器返回更新成功标识;
步骤S310:向目标对象显示更新成功的页面。
图4是根据本发明实施例的缓存数据的更新方法的示意图,如图4所示,具体如下:
步骤S401:业务服务更新MYSQL数据库;
步骤S402:MYSQL数据库记录binlog日志;
步骤S403:消息服务订阅binlog日志;
步骤S404:第一业务在binlog日志中提取第一数据与第一数据的第一标识;
步骤S405:第二业务向redis发送更新指示,其中,所述更新指示用于指示将redis中的与第一标识一致的第二标识对应的第二数据更新为第一数据,在redis更新成功的情况下,结束;在redis未更新成功的情况下,执行步骤S406;
步骤S406:向RocketMQ(相当于上述实施例中的消息队列)发送消费消息,其中,消费消息用于指示将redis中的与第一标识一致的第二标识对应的第二数据更新为第一数据;
需要说明的是,此方案是通过rocketMQ的重试机制来对redis缓存更新失败之后的一个补偿。
步骤S407:向第二业务发送消费信息;
步骤S408:向redis发送消费信息,以指示所述redis重新将第二数据更新为第一数据。
通过上述实施例,获取MYSQL数据库对应的操作日志,其中,操作日志用于指示更新后的第一数据和第一数据对应的第一标识;根据操作日志确定第一数据对应的第一标识,并确定Redis中是否存在与第一标识对应的第二数据;在确定Redis中存在与第一标识一致的第二标识的情况下,将Redis中与第二标识对应的第二数据更新第一数据,即通过获取MYSQL数据库更新缓存数据后对应的操作日志,通过操作日志获取第一数据对应的第一标识,将Redis中与第一标识一致的第二标识对应的第二数据更新第一数据,采用上述技术方案,解决了相关技术中,MYSQL数据库成功更新数据之后,根据MYSQL数据库的数据更新Redis的数据的过程中,如果操作不当会导致,会导致MYSQL数据库的数据与Redis的数据不一致等问题,采用订阅操作日志方式可以避免MYSQL数据库的数据与Redis的数据不一致的问题。
通过上述实施例,接收终端发送的用电量请求,其中,用电量请求用于获取目标设备在预设时间段内的总用电量;响应用电量请求,获取目标设备在第一状态下的第一总用电量和目标设备在第二状态下的第二总用电量;将第一总用电量和第二总用电量之和作为总用电量,即根据目标设备在第一状态下的第一总用电量和目标设备在第二状态下的第二总用电量,确定总用电量。采用上述技术方案,解决了相关技术中,由于硬件模块成本比较高,智能设备通过增加硬件模块感知计算智能设备的用电量会增加智能设备的整体成本等问题,降低了智能设备的整体成本。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例的方法。
图5根据本发明实施例的一种缓存数据的更新装置的结构框图;如图5示,包括:
获取模块52,用于获取第一数据库对应的操作日志,其中,所述操作日志用于指示更新后的第一缓存数据和第一缓存数据对应的第一标识;
确定模块54,用于根据所述操作日志确定所述第一缓存数据对应的第一标识,并确定第二数据库中是否存在与所述第一标识一致的第二标识;
更新模块56,用于在确定所述第二数据库中存在与所述第一标识一致的第二标识的情况下,将所述第二数据库中与所述第二标识对应的第二缓存数据更新所述第一缓存数据。
通过上述装置,获取第一数据库对应的操作日志,其中,操作日志用于指示更新后的第一缓存数据和第一缓存数据对应的第一标识;根据操作日志确定第一缓存数据对应的第一标识,并确定第二数据库中是否存在与第一标识对应的第二缓存数据;在确定第二数据库中存在与第一标识一致的第二标识的情况下,将第二数据库中与第二标识对应的第二缓存数据更新第一缓存数据,即通过获取第一数据库更新缓存数据后对应的操作日志,通过操作日志获取第一缓存数据对应的第一标识,将第二数据库中与第一标识一致的第二标识对应的第二缓存数据更新第一缓存数据,采用上述技术方案,解决了相关技术中,第一数据库成功更新数据之后,根据第一数据库的数据更新第二数据库的数据的过程中,如果操作不当会导致,会导致第一数据库的数据与第二数据库的数据不一致等问题,采用订阅操作日志方式可以避免第一数据库的数据与第二数据库的数据不一致的问题。
在一个示例性实施例中,所述操作日志包括:Binlog日志,第一数据库包括:MYSQL数据库,Binlog日志全称为binary日志,是二进制文件,主要记录了MYSQL数据库在进行DML数据操作语言过程中的操作日志。
在一个示例性实施例中,确定模块,还用于在所述第一数据库接收到更新第三缓存数据的操作的情况下,指示所述第一数据库生成所述操作日志,其中,所述第三缓存数据为第一缓存数据执行更新操作前的数据;在所述第一数据库成功生成所述操作日志的情况下,获取所述操作日志。
也就是说,在目标对象将第一数据库中的第三缓存数据更新为第一缓存数据的情况下,第一数据库根据目标对象对第一数据库中的第三缓存数据进行更新的操作生成操作日志,其中,操作日志用于指示第一缓存数据和第一缓存数据对应的第一标识;在确定目标对象成功将第一数据库中的第三缓存数据更新为第一缓存数据的情况下,获取操作日志;在确定目标对象成功将第一数据库中的第三缓存数据未更新为第一缓存数据的情况下,禁止获取操作日志。
在一个示例性实施例中,在确定所述第二数据库中存在与所述第一标识一致的第二标识的情况下,将所述第二数据库中与所述第二标识对应的第二缓存数据更新所述第一缓存数据之后,确定模块,还用于确定所述第二数据库是否成功将第二缓存数据更新为所述第一缓存数据;在所述第二数据库未成功将第二缓存数据更新为所述第一缓存数据的情况下,将消费信息保存至所述第二数据库对应的消息队列,其中,所述消费信息用于指示将所述第二数据库中的第二缓存数据更新为所述第一缓存数据。
换言之,将所述第二数据库中与所述第二标识对应的第二缓存数据更新所述第一缓存数据之后,确定第二数据库是否成功将第二缓存数据更新所述第一缓存数据,在确定第二数据库成功将第二缓存数据更新所述第一缓存数据的情况下,向所述移动中的显示界面返回更新成功标识;在确定第二数据库未成功将第二缓存数据更新所述第一缓存数据的情况下,生成消费信息,并将所述消费信息放置在消息列表中,其中,消息列表可以定时向第二数据库发送消费信息,即可以达到对第二数据库中的第二缓存数据更新失败之后的补偿。
在一个示例性实施例中,在所述第二数据库未成功将第二缓存数据更新为所述第一缓存数据的情况下,将消费信息保存至消息队列之后,上述装置还包括:接收模块,用于指示所述消息队列按照预设方式向所述第二数据库发送所述消费消息;在接收到所述消息队列发送的消费消息的情况下,根据所述消费消息将所述第二数据库中的第二缓存数据更新为所述第一缓存数据。
具体的,消息列表可以定时向第二数据库发送消费信息,消息队列根据预先设置的时间间隔向第二数据库发送消费信息,在接收到消费信息的情况下,将所述第二数据库中的第二缓存数据更新为所述第一缓存数据。
进一步的,在预设情况下,消息队列停止发送消费信息,其中,所述预设情况至少包括以下之一:确定所述第二数据库中的第二缓存数据成功更新为所述第一缓存数据;达到预设发送次数。
在一个示例性实施例中,确定模块,还用于在确定所述第二数据库成功将第二缓存数据更新为所述第一缓存数据的情况下,生成更新成功标识,其中,所述更新成功标识用于指示所述第二数据库成功将第二缓存数据更新为所述第一缓存数据;将所述更新成功标识发送至所述第一数据库对应的页面。
也就是说,在确定所述第二数据库成功将第二缓存数据更新为所述第一缓存数据的情况下,生成更新成功标识,将更新成功标识发送至述第一数据库对应的页面进行显示,以使目标对象根据更新成功标识确定第二数据库成功将第二缓存数据更新为所述第一缓存数据。
在一个示例性实施例中,确定模块,还用于在确定所述第二数据库中不存在与所述第一标识一致的第二标识的情况下,删除所述操作日志,并向所述第一数据库对应的页面发送提示信息,其中,所述提示信息用于指示所述第二数据库中不存在与所述第一标识一致的第二标识。
换言之,在第一数据库的第三缓存数据更新成第一缓存数据的情况下,确定第二数据库中是否存在与所述第一标识一致的第二标识,也可以理解为,确定第二数据库中是否存在与第三缓存数据一致的第二缓存数据,在第二数据库中不存在与第三缓存数据一致的第二缓存数据的情况下,所述第二数据库不进行更新操作,并将所述操作日志进行删除,并向第一数据库对应的页面发送提示信息,以使所述目标对象根据提示信息确定第二数据库中的不存在与第一标识一致的第二标识,第二数据库可以不进行更新操作。
本发明的实施例还提供了一种存储介质,该存储介质包括存储的程序,其中,上述程序运行时执行上述任一项的方法。
可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的程序代码:
S1,获取第一数据库对应的操作日志,其中,所述操作日志用于指示更新后的第一缓存数据和第一缓存数据对应的第一标识;
S2,根据所述操作日志确定所述第一缓存数据对应的第一标识,并确定第二数据库中是否存在与所述第一标识一致的第二标识;
S3,在确定所述第二数据库中存在与所述第一标识一致的第二标识的情况下,将所述第二数据库中与所述第二标识对应的第二缓存数据更新所述第一缓存数据。
本发明的实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
可选地,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
S1,获取第一数据库对应的操作日志,其中,所述操作日志用于指示更新后的第一缓存数据和第一缓存数据对应的第一标识;
S2,根据所述操作日志确定所述第一缓存数据对应的第一标识,并确定第二数据库中是否存在与所述第一标识一致的第二标识;
S3,在确定所述第二数据库中存在与所述第一标识一致的第二标识的情况下,将所述第二数据库中与所述第二标识对应的第二缓存数据更新所述第一缓存数据。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种缓存数据的更新方法,其特征在于,包括:
获取第一数据库对应的操作日志,其中,所述操作日志用于指示更新后的第一缓存数据和第一缓存数据对应的第一标识;
根据所述操作日志确定所述第一缓存数据对应的第一标识,并确定第二数据库中是否存在与所述第一标识一致的第二标识;
在确定所述第二数据库中存在与所述第一标识一致的第二标识的情况下,将所述第二数据库中与所述第二标识对应的第二缓存数据更新所述第一缓存数据。
2.根据权利要求1所述的缓存数据的更新方法,其特征在于,获取第一数据库对应的操作日志,包括:
在所述第一数据库接收到更新第三缓存数据的操作的情况下,指示所述第一数据库生成所述操作日志,其中,所述第三缓存数据为第一缓存数据执行更新操作前的数据;
在所述第一数据库成功生成所述操作日志的情况下,获取所述操作日志。
3.根据权利要求1所述的缓存数据的更新方法,其特征在于,在确定所述第二数据库中存在与所述第一标识一致的第二标识的情况下,将所述第二数据库中与所述第二标识对应的第二缓存数据更新所述第一缓存数据之后,所述方法还包括:
确定所述第二数据库是否成功将第二缓存数据更新为所述第一缓存数据;
在所述第二数据库未成功将第二缓存数据更新为所述第一缓存数据的情况下,将消费信息保存至所述第二数据库对应的消息队列,其中,所述消费信息用于指示将所述第二数据库中的第二缓存数据更新为所述第一缓存数据。
4.根据权利要求3所述的缓存数据的更新方法,其特征在于,在所述第二数据库未成功将第二缓存数据更新为所述第一缓存数据的情况下,将消费信息保存至消息队列之后,所述方法还包括:
指示所述消息队列按照预设方式向所述第二数据库发送所述消费消息;
在接收到所述消息队列发送的消费消息的情况下,根据所述消费消息将所述第二数据库中的第二缓存数据更新为所述第一缓存数据。
5.根据权利要求3所述的缓存数据的更新方法,其特征在于,确定所述第二数据库是否将第二缓存数据更新为所述第一缓存数据之后,所述方法还包括:
在确定所述第二数据库成功将第二缓存数据更新为所述第一缓存数据的情况下,生成更新成功标识,其中,所述更新成功标识用于指示所述第二数据库成功将第二缓存数据更新为所述第一缓存数据;
将所述更新成功标识发送至所述第一数据库对应的页面。
6.根据权利要求1所述的缓存数据的更新方法,其特征在于,根据所述操作日志确定所述第一缓存数据对应的第一标识,并确定第二数据库中是否存在与所述第一标识一致的第二标识,包括:
在确定所述第二数据库中不存在与所述第一标识一致的第二标识的情况下,删除所述操作日志,并向所述第一数据库对应的页面发送提示信息,其中,所述提示信息用于指示所述第二数据库中不存在与所述第一标识一致的第二标识。
7.一种缓存数据的更新装置,其特征在于,包括:
获取模块,用于获取第一数据库对应的操作日志,其中,所述操作日志用于指示更新后的第一缓存数据和第一缓存数据对应的第一标识;
确定模块,用于根据所述操作日志确定所述第一缓存数据对应的第一标识,并确定第二数据库中是否存在与所述第一标识一致的第二标识;
更新模块,用于在确定所述第二数据库中存在与所述第一标识一致的第二标识的情况下,将所述第二数据库中与所述第二标识对应的第二缓存数据更新所述第一缓存数据。
8.根据权利要求7所述的缓存数据的更新装置,其特征在于,包括:
获取模块,还用于在所述第一数据库接收到更新第三缓存数据的操作的情况下,指示所述第一数据库生成所述操作日志,其中,所述第三缓存数据为第一缓存数据执行更新操作前的数据;在所述第一数据库成功生成所述操作日志的情况下,获取所述操作日志。
9.一种计算机可读的存储介质,其特征在于,所述计算机可读的存储介质包括存储的程序,其中,所述程序运行时执行上述权利要求1至6任一项中所述的方法。
10.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为通过所述计算机程序执行所述权利要求1至6任一项中所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110707341.2A CN113434525B (zh) | 2021-06-24 | 2021-06-24 | 缓存数据的更新方法和装置、存储介质及电子装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110707341.2A CN113434525B (zh) | 2021-06-24 | 2021-06-24 | 缓存数据的更新方法和装置、存储介质及电子装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113434525A true CN113434525A (zh) | 2021-09-24 |
CN113434525B CN113434525B (zh) | 2023-06-09 |
Family
ID=77754169
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110707341.2A Active CN113434525B (zh) | 2021-06-24 | 2021-06-24 | 缓存数据的更新方法和装置、存储介质及电子装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113434525B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117478535A (zh) * | 2023-12-26 | 2024-01-30 | 北京天空卫士网络安全技术有限公司 | 一种日志存储的方法和装置 |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040215998A1 (en) * | 2003-04-10 | 2004-10-28 | International Business Machines Corporation | Recovery from failures within data processing systems |
CN101118509A (zh) * | 2007-09-12 | 2008-02-06 | 华为技术有限公司 | 内存数据库远程容灾的方法、装置和*** |
CN105574158A (zh) * | 2015-12-15 | 2016-05-11 | 广州品唯软件有限公司 | 数据库缓存数据的刷新方法及其*** |
US20170161126A1 (en) * | 2015-12-02 | 2017-06-08 | International Business Machines Corporation | Dynamic queue alias |
CN107943841A (zh) * | 2017-10-30 | 2018-04-20 | 深圳前海微众银行股份有限公司 | 流式数据处理方法、***和计算机可读存储介质 |
CN108345627A (zh) * | 2017-12-19 | 2018-07-31 | 海尔优家智能科技(北京)有限公司 | 本地缓存数据更新的方法、装置、可读存储介质及设备 |
CN108804237A (zh) * | 2017-05-05 | 2018-11-13 | 北京京东尚科信息技术有限公司 | 数据实时统计方法、装置、存储介质和电子设备 |
CN109788053A (zh) * | 2019-01-04 | 2019-05-21 | 深圳壹账通智能科技有限公司 | 数据同步方法和*** |
CN109871388A (zh) * | 2019-02-19 | 2019-06-11 | 北京字节跳动网络技术有限公司 | 数据缓存方法、装置、终电子设备及存储介质 |
CN110941623A (zh) * | 2019-11-12 | 2020-03-31 | 北京达佳互联信息技术有限公司 | 数据的同步方法及装置 |
CN112615907A (zh) * | 2020-12-04 | 2021-04-06 | 北京齐尔布莱特科技有限公司 | 一种数据同步***及方法 |
CN112749172A (zh) * | 2019-10-29 | 2021-05-04 | 深圳市茁壮网络股份有限公司 | 一种缓存与数据库之间的数据同步方法及*** |
-
2021
- 2021-06-24 CN CN202110707341.2A patent/CN113434525B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040215998A1 (en) * | 2003-04-10 | 2004-10-28 | International Business Machines Corporation | Recovery from failures within data processing systems |
CN101118509A (zh) * | 2007-09-12 | 2008-02-06 | 华为技术有限公司 | 内存数据库远程容灾的方法、装置和*** |
US20170161126A1 (en) * | 2015-12-02 | 2017-06-08 | International Business Machines Corporation | Dynamic queue alias |
CN105574158A (zh) * | 2015-12-15 | 2016-05-11 | 广州品唯软件有限公司 | 数据库缓存数据的刷新方法及其*** |
CN108804237A (zh) * | 2017-05-05 | 2018-11-13 | 北京京东尚科信息技术有限公司 | 数据实时统计方法、装置、存储介质和电子设备 |
CN107943841A (zh) * | 2017-10-30 | 2018-04-20 | 深圳前海微众银行股份有限公司 | 流式数据处理方法、***和计算机可读存储介质 |
CN108345627A (zh) * | 2017-12-19 | 2018-07-31 | 海尔优家智能科技(北京)有限公司 | 本地缓存数据更新的方法、装置、可读存储介质及设备 |
CN109788053A (zh) * | 2019-01-04 | 2019-05-21 | 深圳壹账通智能科技有限公司 | 数据同步方法和*** |
CN109871388A (zh) * | 2019-02-19 | 2019-06-11 | 北京字节跳动网络技术有限公司 | 数据缓存方法、装置、终电子设备及存储介质 |
CN112749172A (zh) * | 2019-10-29 | 2021-05-04 | 深圳市茁壮网络股份有限公司 | 一种缓存与数据库之间的数据同步方法及*** |
CN110941623A (zh) * | 2019-11-12 | 2020-03-31 | 北京达佳互联信息技术有限公司 | 数据的同步方法及装置 |
CN112615907A (zh) * | 2020-12-04 | 2021-04-06 | 北京齐尔布莱特科技有限公司 | 一种数据同步***及方法 |
Non-Patent Citations (2)
Title |
---|
MANYOU MA 等: ""Age of Information Driven Cache Content Update Scheduling for Dynamic Contents in Heterogeneous Networks"", 《IEEE TRANSACTIONS ON WIRELESS COMMUNICATIONS》 * |
袁旭初 等: ""分布式数据流计算***的 数据缓存技术综述"", 《大数据》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117478535A (zh) * | 2023-12-26 | 2024-01-30 | 北京天空卫士网络安全技术有限公司 | 一种日志存储的方法和装置 |
CN117478535B (zh) * | 2023-12-26 | 2024-04-19 | 北京天空卫士网络安全技术有限公司 | 一种日志存储的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN113434525B (zh) | 2023-06-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108460115B (zh) | 消息推送方法、装置、计算机设备及存储介质 | |
CN111372249B (zh) | 物联网eSIM终端码号下载流程一致性测试***及方法 | |
CN111142905B (zh) | 一种ota升级方法、ota服务器及ota升级*** | |
CN106412092A (zh) | 消息推送方法、装置及服务器 | |
CN112596768B (zh) | 设备的更新方法和装置、存储介质、电子装置 | |
CN113434293A (zh) | 处理重复请求的方法和装置、存储介质及电子装置 | |
CN110543324A (zh) | 一种应用程序的插件增量更新方法及装置 | |
CN103973745A (zh) | 一种移动终端操作***升级的方法及装置 | |
CN105530630B (zh) | 一种ota升级方法和设备 | |
CN113434525B (zh) | 缓存数据的更新方法和装置、存储介质及电子装置 | |
CN113190565B (zh) | 数据更新方法及装置、存储介质及电子装置 | |
CN113518317B (zh) | 提示信息的发送方法和装置、存储介质及电子装置 | |
CN114466387A (zh) | 基站的配置文件的更新方法、装置、存储介质和电子装置 | |
CN111427603B (zh) | 应用程序的升级方法及装置 | |
CN113434171A (zh) | 资源包的更新方法和装置、存储介质及电子装置 | |
US20130145013A1 (en) | Communication terminal and content update method | |
EP3758396B1 (en) | Communication control device, communication setting method, communication setting program, and communication system | |
CN113852919B (zh) | 预警消息的生成方法和装置、存储介质及电子装置 | |
CN113873533B (zh) | 数据处理的方法、装置、设备及存储介质 | |
CN114697375B (zh) | 语音包的切换方法和装置、存储介质及电子装置 | |
CN113194523B (zh) | 网络连接建立方法、装置、终端及存储介质 | |
CN114040399B (zh) | 设备绑定方法和装置、存储介质及电子装置 | |
CN114090917A (zh) | 城市信息的显示方法及装置、存储介质及电子装置 | |
CN112506580A (zh) | 数据融合方法及装置,存储介质及电子装置 | |
CN115934703A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |