CN117009364A - 一种缓存数据的更新方法、装置、设备及存储介质 - Google Patents
一种缓存数据的更新方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN117009364A CN117009364A CN202310993461.2A CN202310993461A CN117009364A CN 117009364 A CN117009364 A CN 117009364A CN 202310993461 A CN202310993461 A CN 202310993461A CN 117009364 A CN117009364 A CN 117009364A
- Authority
- CN
- China
- Prior art keywords
- cache
- data
- database
- key value
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 52
- 238000012217 deletion Methods 0.000 claims description 15
- 230000037430 deletion Effects 0.000 claims description 15
- 238000012545 processing Methods 0.000 description 7
- 238000004891 communication Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000035515 penetration Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000149 penetrating effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
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
- 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/242—Query formulation
- G06F16/2433—Query languages
- G06F16/2445—Data retrieval commands; View definitions
-
- 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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例公开了一种缓存数据的更新方法、装置、设备及存储介质,可应用于金融领域或其他领域。在该方法中,获取查询条件,查询条件包括key值;将缓存中与key值对应的缓存数据删除;对key值对应的数据库数据进行更新,得到更新后的数据库数据;若数据库数据更新时在缓存中生成的缓存脏数据,则将缓存脏数据删除;根据key值将数据库数据存储于缓存中,得到更新后的缓存数据。由此可见,利用本申请实施例提供的方案,在对数据库进行更新前对缓存中的对应的缓存数据进行删除,在数据库更新后对对应的缓存进行二次删除,再对缓存进行更新,能够避免对数据库进行更新时缓存中并发所造成的缓存脏数据,从而有效地保证缓存与数据库中数据的一致性。
Description
技术领域
本申请涉及金融领域,尤其涉及一种缓存数据的更新方法、装置、设备及存储介质。
背景技术
在应用系统中,通常会通过对数据库进行查询来获取数据。当数据量较高的时候,需要减少对于数据库里面的磁盘的读写操作,因此通常都会选择在业务系统和数据库之间加入一层缓存从而减少对数据库的访问压力。但缓存若不能实时更新会导致缓存中的数据与数据库中的数据存在差异从而影响系统功能。
因此,如何实现缓存和数据库之间的数据一致性是本领域技术人员需要解决的。
发明内容
本申请实施例提供了一种缓存数据的更新方法、装置、设备及存储介质,可以实现缓存和数据库之间的数据一致性。
本申请第一方面提供了一种缓存数据的更新方法,包括:
获取查询条件,所述查询条件包括key值;
将缓存中与所述key值对应的缓存数据删除;
对所述key值对应的数据库数据进行更新,得到更新后的数据库数据;
若数据库数据更新时在所述缓存中生成的缓存脏数据,则将所述缓存脏数据删除;
根据所述key值将所述数据库数据存储于所述缓存中,得到更新后的缓存数据。
可选地,所述方法,还包括:
接收数据获取请求,所述请求包括所述查询条件;
根据所述查询条件在所述缓存中进行查询;
若所述缓存数据包含目标数据,则从缓存中获取所述目标数据。
可选地,所述方法,还包括:
若所述缓存数据不包含目标数据,则根据所述查询条件在所述数据库中进行查询,获取所述查询条件对应的目标数据。
可选地,所述方法还包括;
若所述缓存脏数据删除失败,则将所述key值存入消息队列中;
通过所述消息队列对所述key值对应的缓存脏数据进行循环删除;
当所述缓存脏数据删除成功时,则结束所述循环删除。
可选地,所述对所述缓存脏数据进行删除包括:在预设时间后对所述缓存脏数据进行删除。
本申请第二方面提供了一种缓存数据的更新装置,包括:
获取单元,用于获取查询条件,所述查询条件包括key值;
删除单元,用于将缓存中与所述key值对应的缓存数据删除;
更新单元,用于对所述key值对应的数据库数据进行更新,得到更新后的数据库数据;
所述删除单元,还用于若数据库数据更新时在所述缓存中生成的缓存脏数据,则将所述缓存脏数据删除;
所述更新单元,还用于根据所述key值将所述数据库数据存储于所述缓存中,得到更新后的缓存数据。
可选地,所述装置,还包括:
接收单元,用于接收数据获取请求,所述请求包括所述查询条件;
查询单元,用于根据所述查询条件在所述缓存中进行查询;
获取单元,用于若所述缓存数据包含目标数据,则从缓存中获取所述目标数据。
可选地,所述查询单元,还用于:
若所述缓存数据不包含目标数据,则根据所述查询条件在所述数据库中进行查询,获取所述目标数据标识对应的目标数据。
本申请第三方面提供了一种缓存数据的更新设备,包括:
一个或多个处理器;
存储器,其上存储有一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如上述任意一项所述的一种缓存数据的更新方法。
本申请第四方面提供了一种计算机存储介质,用于存储程序,所述程序被执行时,用于实现如上述任意一项所述的一种缓存数据的更新方法。
本申请实施例公开了一种缓存数据的更新方法、装置、设备及存储介质。在该方法中,获取查询条件,查询条件包括key值;将缓存中与key值对应的缓存数据删除;对key值对应的数据库数据进行更新,得到更新后的数据库数据;若数据库数据更新时在缓存中生成的缓存脏数据,则将缓存脏数据删除;根据key值将数据库数据存储于缓存中,得到更新后的缓存数据。由此可见,利用本申请实施例提供的方案,在对数据库进行更新前对缓存中的对应的缓存数据进行删除,在数据库更新后对对应的缓存进行二次删除,再对缓存进行更新,能够避免对数据库进行更新时缓存中并发所造成的缓存脏数据,从而有效地保证缓存与数据库中数据的一致性。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种示例性应用场景示意图;
图2为本申请实施例提供的一种缓存数据的更新方法的流程示意图;
图3为本申请实施例提供的一种缓存数据的更新装置的结构示意图;
图4为本申请实施例提供的一种缓存数据的更新设备的结构示意图。
具体实施方式
本申请实施例提供了一种缓存数据的更新方法、装置、设备及存储介质,可以实现缓存和数据库之间的数据一致性。
为方便理解,首先对本申请实施例的应用场景进行介绍。
在应用系统中,通常会通过对数据库进行查询来获取数据。
可结合图1进行理解,图1为本申请实施例提供的一种示例性应用场景示意图。
如图1所示,客户端向业务系统发送数据获取请求,通过业务系统根据数据获取请求在数据库中查询并获取目标数据。当数据量较高的时候,需要减少对于数据库里面的磁盘的读写操作,因此通常都会选择在业务系统和数据库之间加入一层缓存从而减少对数据库的访问压力。现有技术中的缓存处理的机制包括如下方式:
(1)旁路缓存(CacheAside)
旁路缓存是先在缓存中查询目标数据,如果缓存没有命中则从数据库中进行查询。当查询的时候发现缓存中存在目标数据,那么直接从缓存中获取。当缓存没有目标数据的时候,则从数据库里面读取源目标数据,再将目标数据加入到缓存里面去。当有新的写操作去修改数据库里面的数据时,需要在写操作完成之后,让缓存里面对应的数据失效。但是,旁路缓存存在如下的问题:在进行读操作的时候如果没有命中缓存,则会在数据库中取数据,此时,来了一个写操作,在数据库中进行写操作后,让缓存失效,然而,之前的那个读操作再把旧的数据放进缓存中,从而生成缓存脏数据。
(2)读写穿透(Read/Write ThroughRead Through)
读写穿透的缓存模式是指应用程序始终从缓存中请求数据。如果缓存没有数据,则使用底层提供的程序插件从数据库中检索数据。检索数据后,缓存会自行更新并将数据返回给调用的应用程序。当数据发生更新的时候,先去缓存里面进行更新,如果命中了,则先更新缓存再由存储方来更新数据库。如果没有命中的话,就直接更新缓存里面的数据。使用读写穿透有一个好处是使用key从缓存中检索数据,调用的应用程序不知道数据库,由存储方来负责自己的缓存处理,这使代码更具可读性,代码更清晰。但是这也有相应的缺陷,开发人员需要给编写相关的程序插件,增加了开发的难度性。
(3)异步缓存写入(Write Behind Caching)
异步缓存写入的缓存模式是先将数据写入到缓存里面,然后再异步的写入到数据库中进行数据同步,这样的设计既可以直接的减少我们对于数据库的直接访问,降低压力,同时对于数据库的多次修改可以进行合并操作,极大的提升了系统的承载能力。
但是这种模式处理缓存数据具有一定的风险性,例如说当系统出现宕机的时候,数据会有丢失的可能。
因此,本申请实施例提供了一种缓存数据的更新方法、装置、设备及存储介质,在对数据库进行更新前对缓存中的对应的缓存数据进行删除,在数据库更新后对对应的缓存进行二次删除,再对缓存进行更新,能够避免对数据库进行更新时缓存中并发所造成的缓存脏数据,从而有效地保证缓存与数据库中数据的一致性;本申请通过对缓存进行两次删除操作,并不需要增加复杂的代码插件,因此开发难度低;本申请先对数据库进行更新然后再对缓存进行更新,具备容错机制,可以减小异常场景出现的概率。
参见图2,该图为本申请实施例提供的一种缓存数据的更新方法的流程示意图。本申请实施例提供的缓存数据的更新方法,例如可以通过如下步骤S201-S205实现。
S201:获取查询条件。
在本申请实施例中,获取查询条件,查询条件包括key值;key值为表名+字符串。例如需要从缓存中查询user表中user_name为2和phone为15311111111的数据,则KEY值为user:select*fromuserwhereuser_name=2and phone=15311111111。
优选地,本申请实施例中的数据库为MySQL数据库。
在本申请实施例的一种实现方式中,接收数据获取请求,请求包括查询条件;根据查询条件在缓存中进行查询;若缓存数据包含目标数据,则从缓存中获取目标数据。若缓存数据不包含目标数据,则根据目标数据标识在数据库中进行查询,获取查询条件对应的目标数据。
具体的,查询条件为key值,查询并获取缓存中key值的对应的缓存数据。该key值为:查询条件中的表名+查询条件中所有的字符串组合。利用该key值从缓存中获取数据,若获取成功则直接向客户端返回从缓存中获取的目标数据;反之,若获取失败,则根据查询条件从数据库中获取数据,将获取到的数据存储在缓存中再向客户端返回获取的目标数据。
S202:将缓存中与key值对应的缓存数据删除。
在本申请实施例中,在本实施例中,根据key值修改或删除redis中的一条数据时,根据key对特定一条数据执行操作,不会对其他缓存数据产生影响。
优选地,本申请实施例中的缓存为redis缓存数据库。
S203:对key值对应的数据库数据进行更新,得到更新后的数据库数据。
在本申请实施例中,根据key值在数据库中确定要更新的数据库数据,通过对该数据库数据进行写操作实现对数据库数据的更新。
S204:若数据库更新时在缓存中生成的缓存脏数据,则将缓存脏数据删除。
具体的,在数据库中进行写操作时,并发的读操作可能造成缓存脏数据,因此,在对数据库进行更新后再次对对应的缓存进行删除操作。
在本申请实施例的一种实现方式中,若缓存脏数据删除失败,则将key值存入消息队列中;通过消息队列对key值对应的缓存脏数据进行循环删除;当缓存脏数据删除成功时,则结束循环删除。
具体的,若第二次缓存删除失败会导致缓存数据和数据库中数据不一致,因此增加重试机制,将删除失败的缓存脏数据对应的key值放入消息队列中,通过从消息队列中获取需要删除的缓存脏数据对应key值进行循环尝试删除操作,直至删除成功,从而确保缓存中不会存在因并发的读操作产生和数据库中不一致的数据。
在本申请实施例的一种实现方式中,在预设时间后对缓存脏数据进行删除。
具体的,在预设时间后对缓存脏数据进行删除,也就是说,在对缓存脏数据进行删除前进行休眠,休眠时长(即预设时间)为读操作耗时与预设时长的和,例如在读操作耗时的基础上加上200毫秒。需要说明的是,本申请实施例中的预设时长200毫秒仅为实例,具体根据实际情况进行设定。
S205:根据key值将数据库数据存储于缓存中,得到更新后的缓存数据。
在本申请实施例中,根据key值同步更新缓存中的缓存数据,保持缓存与数据库中数据的一致性。
本申请实施例公开了一种缓存数据的更新方法、装置、设备及存储介质。在该方法中,获取查询条件,查询条件包括key值;将缓存中与key值对应的缓存数据删除;对key值对应的数据库数据进行更新,得到更新后的数据库数据;若数据库数据更新时在缓存中生成的缓存脏数据,则将缓存脏数据删除;根据key值将数据库数据存储于缓存中,得到更新后的缓存数据。由此可见,利用本申请实施例提供的方案,在对数据库进行更新前对缓存中的对应的缓存数据进行删除,在数据库更新后对对应的缓存进行二次删除,再对缓存进行更新,能够避免对数据库进行更新时缓存中并发所造成的缓存脏数据,从而有效地保证缓存与数据库中数据的一致性。
基于以上实施例提供的方法,本申请实施例还提供了一种缓存数据的更新装置,以下结合附图介绍该缓存数据的更新装置
参见图3,该图为本申请实施例提供的一种缓存数据的更新装置的结构示意图。
本申请实施例提供的缓存数据的更新装置300,包括:获取单元301、删除单元302和更新单元303。
获取单元301,用于获取查询条件,查询条件包括key值;
删除单元302,用于将缓存中与key值对应的缓存数据删除;
更新单元303,用于对key值对应的数据库数据进行更新,得到更新后的数据库数据;
删除单元302,还用于若数据库数据更新时在缓存中生成的缓存脏数据,则将缓存脏数据删除;
更新单元303,还用于根据key值将数据库数据存储于缓存中,得到更新后的缓存数据。
在一种可能的实现方式中,该装置300,还包括:
接收单元,用于接收数据获取请求,请求包括查询条件;
查询单元,用于根据查询条件在所述缓存中进行查询;
获取单元,用于若缓存数据包含目标数据,则从缓存中获取目标数据。
在一种可能的实现方式中,查询单元,还用于:
若缓存数据不包含目标数据,则根据查询条件在数据库中进行查询,获取目标数据标识对应的目标数据。
在一种可能的实现方式中,删除单元302,具有用于:
若缓存脏数据删除失败,则将key值存入消息队列中;
通过消息队列对key值对应的缓存脏数据进行循环删除;
当缓存脏数据删除成功时,则结束循环删除。
在一种可能的实现方式中,删除单元302,具有用于:
在预设时间后对缓存脏数据进行删除。
由于装置300是与以上方法实施例提供的一种缓存数据的更新方法对应的装置,装置300的各个单元的具体实现,均与以上方法实施例为同一构思,因此,关于装置300的各个单元的具体实现,可以参考以上方法实施例关于缓存数据的更新方法的描述部分,此处不再赘述。
本申请提供的一种缓存数据的更新方法、装置、设备及存储介质可用于金融领域或其他领域,例如,可用于金融领域中的银行数据库更新的应用场景。其他领域为除金融领域之外的任意领域,例如,数据处理领域。
本申请实施例还提供了一种缓存数据的更新设备,设备包括:处理器和存储器;
存储器,用于存储指令;
处理器,用于执行存储器中的指令,执行以上实施例提及的由分析设备执行的链路属性确定方法。
需要说明的是,本申请实施例中提供的一种缓存数据的更新设备,其硬件结构均可以为如图4所示的结构,图4为本申请实施例提供的一种缓存数据的更新设备的结构示意图。
请参阅图4所示,设备400包括:处理器410、通信接口420和和存储器430。其中设备400中的处理器410的数量可以一个或多个,图4中以一个处理器为例。本申请实施例中,处理器410、通信接口420和存储器430可通过总线系统或其它方式连接,其中,图4中以通过总线系统440连接为例。
处理器410可以是中央处理器(central processing unit,CPU),网络处理器(network processor,NP)或者CPU和NP的组合。处理器410还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路(application-specific integrated circuit,ASIC),可编程逻辑器件(programmable logic device,PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(complex programmable logic device,CPLD),现场可编程逻辑门阵列(field-programmable gate array,FPGA),通用阵列逻辑(generic array logic,GAL)或其任意组合。
存储器430可以包括易失性存储器(英文:volatile memory),例如随机存取存储器(random-access memory,RAM);存储器430也可以包括非易失性存储器(英文:non-volatile memory),例如快闪存储器(英文:flash memory),硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD);存储器430还可以包括上述种类的存储器的组合。
可选地,存储器430存储有操作系统和程序、可执行模块或者数据结构,或者它们的子集,或者它们的扩展集,其中,程序可包括各种操作指令,用于实现各种操作。操作系统可包括各种系统程序,用于实现各种基础业务以及处理基于硬件的任务。处理器410可以读取存储器430中的程序,实现本申请实施例提供的缓存数据的更新方法。
总线系统440可以是外设部件互连标准(peripheral component interconnect,PCI)总线或扩展工业标准结构(extended industry standard architecture,EISA)总线等。总线系统440可以分为地址总线、数据总线、控制总线等。为便于表示,图4中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
本申请实施例还提供了一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行以上实施例提及的缓存数据的更新方法。
本申请实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行以上实施例提及的缓存数据的更新方法。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑业务划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各业务单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件业务单元的形式实现。
集成的单元如果以软件业务单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的业务可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些业务存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
以上的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上仅为本发明的具体实施方式而已。
以上,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
Claims (10)
1.一种缓存数据的更新方法,其特征在于,所述方法包括:
获取查询条件,所述查询条件包括key值;
将缓存中与所述key值对应的缓存数据删除;
对所述key值对应的数据库数据进行更新,得到更新后的数据库数据;
若数据库数据更新时在所述缓存中生成的缓存脏数据,则将所述缓存脏数据删除;
根据所述key值将所述数据库数据存储于所述缓存中,得到更新后的缓存数据。
2.根据权利要求1所述的方法,其特征在于,所述方法,还包括:
接收数据获取请求,所述请求包括所述查询条件;
根据所述查询条件在所述缓存中进行查询;
若所述缓存数据包含目标数据,则从缓存中获取所述目标数据。
3.根据权利要求2所述的方法,其特征在于,所述方法,还包括:
若所述缓存数据不包含目标数据,则根据所述查询条件在所述数据库中进行查询,获取所述查询条件对应的目标数据。
4.根据权利要1所述的方法,其特征在于,所述方法还包括;
若所述缓存脏数据删除失败,则将所述key值存入消息队列中;
通过所述消息队列对所述key值对应的缓存脏数据进行循环删除;
当所述缓存脏数据删除成功时,则结束所述循环删除。
5.根据权利要求1所述的方法,其特征在于,所述将所述缓存脏数据删除包括:在预设时间后对所述缓存脏数据进行删除。
6.一种缓存数据的更新装置,其特征在于,所述装置包括:
获取单元,用于获取查询条件,所述查询条件包括key值;
删除单元,用于将缓存中与所述key值对应的缓存数据删除;
更新单元,用于对所述key值对应的数据库数据进行更新,得到更新后的数据库数据;
所述删除单元,还用于若数据库数据更新时在所述缓存中生成的缓存脏数据,则将所述缓存脏数据删除;
所述更新单元,还用于根据所述key值将所述数据库数据存储于所述缓存中,得到更新后的缓存数据。
7.根据权利要求6所述的装置,其特征在于,所述装置,还包括:
接收单元,用于接收数据获取请求,所述请求包括所述查询条件;
查询单元,用于根据所述查询条件在所述缓存中进行查询;
获取单元,用于若所述缓存数据包含目标数据,则从缓存中获取所述目标数据。
8.根据权利要求7所述的装置,其特征在于,所述查询单元,还用于:
若所述缓存数据不包含目标数据,则根据所述查询条件在所述数据库中进行查询,获取所述目标数据标识对应的目标数据。
9.一种缓存数据的更新设备,其特征在于,所述设备包括:处理器和存储器;
所述存储器,用于存储指令;
所述处理器,用于执行所述存储器中的所述指令,执行权利要求1-5任意一项所述的方法。
10.一种计算机可读存储介质,其特征在于,包括指令,当其在计算机上运行时,使得计算机执行以上权利要求1-5任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310993461.2A CN117009364A (zh) | 2023-08-08 | 2023-08-08 | 一种缓存数据的更新方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310993461.2A CN117009364A (zh) | 2023-08-08 | 2023-08-08 | 一种缓存数据的更新方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117009364A true CN117009364A (zh) | 2023-11-07 |
Family
ID=88570768
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310993461.2A Pending CN117009364A (zh) | 2023-08-08 | 2023-08-08 | 一种缓存数据的更新方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117009364A (zh) |
-
2023
- 2023-08-08 CN CN202310993461.2A patent/CN117009364A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11625374B2 (en) | Eventual consistency in a deduplicated cloud storage system | |
US9715507B2 (en) | Techniques for reconciling metadata and data in a cloud storage system without service interruption | |
US9811577B2 (en) | Asynchronous data replication using an external buffer table | |
CN109086388B (zh) | 区块链数据存储方法、装置、设备及介质 | |
CN111414389B (zh) | 一种数据处理方法、装置、电子设备及存储介质 | |
US11216412B2 (en) | Intelligent merging for efficient updates in columnar databases | |
KR101674176B1 (ko) | 파일 단위 순서 모드 저널링 기법을 이용한 fsync 시스템 호출 처리 장치 및 방법 | |
US20190324947A1 (en) | Method, device and computer program product for deleting snapshots | |
CN111125040A (zh) | 管理重做日志的方法、装置及存储介质 | |
CN115840731A (zh) | 文件处理方法、计算设备及计算机存储介质 | |
US11669402B2 (en) | Highly efficient native application data protection for office 365 | |
CN115421856A (zh) | 一种数据恢复方法及装置 | |
CN111753141A (zh) | 一种数据管理方法及相关设备 | |
CN108271420B (zh) | 管理文件的方法、文件系统和服务器系统 | |
CN117009364A (zh) | 一种缓存数据的更新方法、装置、设备及存储介质 | |
US11782629B2 (en) | Data processing method, device, and electronic device | |
CN114218471A (zh) | 数据查询方法、装置、系统、电子设备及存储介质 | |
WO2016185252A1 (en) | Storing disposition notifications in a message store | |
CN113806249B (zh) | 一种对象存储有序列举方法、装置、终端及存储介质 | |
CN115878563B (zh) | 一种分布式文件系统目录级快照的实现方法及电子设备 | |
CN115604290B (zh) | Kafka消息执行方法、装置、设备及存储介质 | |
CN112988474B (zh) | 一种海量小文件备份热数据的方法、系统、设备及介质 | |
US11675668B2 (en) | Leveraging a cloud-based object storage to efficiently manage data from a failed backup operation | |
US20230409608A1 (en) | Management device, database system, management method, and computer program product | |
CN112685431B (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 |