The invention discloses a device and method for storing persistent cache based data caching mechanism can at least solve the poor tolerance of the existing problems in database technology cannot prevent the data error in the cache fault. The method includes: to write data in the cache, according to data writing time as the time stamp of each data in the cache settings corresponding respectively; each data cache storage into the database, for each data cache, obtain the timestamp timestamp data cache and the database and the data corresponding to the data record; when the timestamp of the data to determine the cache database and the data is less than the corresponding data records, delete the data in the cache; otherwise, the timestamps for the data cache and the corresponding storage into the database.
【技术实现步骤摘要】
基于缓存的数据持久化存储方法及装置
本专利技术涉及通信
,具体涉及一种基于缓存的数据持久化存储方法及装置。
技术介绍
缓存就是数据交换的缓冲区,由于缓存的读写速度较快,因此,利用缓存可以提升数据读取或写入的效率。例如,当读取数据时,先从缓存中查找所需数据,若查找到则直接从缓存中进行读取;当写入数据时,先将待写入的数据写入缓存,然后再将缓存中的数据持久化存储到数据库中。由此可见,通过缓存机制能够为读写过程带来便利,因此,缓存机制得到了越来越广泛的应用。但是,专利技术人在实现本专利技术的过程中发现,现有的缓存机制至少存在如下问题:当缓存正常时,缓存内存储的数据会按照预设规则有序地存储到数据库中。但是,一旦缓存发生了故障,当故障恢复后,缓存内存储的数据则可能会乱序甚至错误地存储到数据库中。例如,假设缓存中的一部分数据暂时出现故障而无法读取,因此,在将缓存中的数据持久化存储到数据库时,该部分数据被遗漏;经过一段时间后,缓存中的该部分数据恢复正常,则在下一次将缓存中的数据持久化存储到数据库的过程中,该部分数据将被存储到数据库中。然而,在实际情况中,该部分数据很可能已经成为过期的错误数据,由此导致数据库中的数据出现错误。由此可见,现有的缓存机制容灾性较差,无法在缓存故障时防止数据库中的数据出错。
技术实现思路
鉴于上述问题,提出了本专利技术以便提供一种克服上述问题或者至少部分地解决上述问题的基于缓存的数据持久化存储方法及装置。根据本专利技术的一个方面,提供了一种基于缓存的数据持久化存储方法,包括:向缓存中写入数据时,根据数据写入时间为缓存中的各个数据分别设置对应的时 ...
【技术保护点】
一种基于缓存的数据持久化存储方法,包括:向缓存中写入数据时,根据数据写入时间为缓存中的各个数据分别设置对应的时间戳;将所述缓存中的各个数据持久化存储到数据库时,针对所述缓存中的每个数据,分别获取所述缓存中该数据的时间戳以及所述数据库中与该数据对应的数据记录的时间戳;当确定所述缓存中该数据的时间戳小于所述数据库中与该数据对应的数据记录的时间戳时,删除所述缓存中的该数据;否则,将所述缓存中的该数据及其对应的时间戳持久化存储到所述数据库中。
【技术特征摘要】
1.一种基于缓存的数据持久化存储方法,包括:向缓存中写入数据时,根据数据写入时间为缓存中的各个数据分别设置对应的时间戳;将所述缓存中的各个数据持久化存储到数据库时,针对所述缓存中的每个数据,分别获取所述缓存中该数据的时间戳以及所述数据库中与该数据对应的数据记录的时间戳;当确定所述缓存中该数据的时间戳小于所述数据库中与该数据对应的数据记录的时间戳时,删除所述缓存中的该数据;否则,将所述缓存中的该数据及其对应的时间戳持久化存储到所述数据库中。2.根据权利要求1所述的方法,其中,当确定所述缓存中该数据的时间戳小于所述数据库中与该数据对应的数据记录的时间戳时,所述方法进一步包括:将数据库中该数据及其对应的时间戳保存至所述缓存中。3.根据权利要求1或2所述的方法,其中,进一步包括:当检测到所述缓存故障时,将所述缓存故障期间产生的数据及其对应的时间戳持久化存储到所述数据库中。4.根据权利要求1-3任一所述的方法,其中,所述分别获取所述缓存中该数据的时间戳以及所述数据库中与该数据对应的数据记录的时间戳的步骤具体包括:分别获取所述缓存中的该数据各次写入时对应的时间戳,将各次写入时对应的时间戳中的最大值确定为所述缓存中该数据的时间戳;分别获取所述数据库中与该数据对应的各条数据记录的时间戳,将各条数据记录的时间戳中的最大值确定为所述数据库中与该数据对应的数据记录的时间戳。5.根据权利要求4所述的方法,其中,所述分别获取所述缓存中的该数据各次写入时对应的时间戳的步骤具体包括:根据所述缓存中的该数据的键值确定该数据各次写入时对应的时间戳;所述分别获取所述数据库中与该数...
【专利技术属性】
技术研发人员:王文铎,陈宗志,彭信东,王康,
申请(专利权)人:北京奇虎科技有限公司,
类型:发明
国别省市:北京,11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。