基于缓存的数据持久化存储方法及装置制造方法及图纸

技术编号:15391720 阅读:71 留言:0更新日期:2017-05-19 04:54
本发明专利技术公开了一种基于缓存的数据持久化存储方法及装置,至少能够解决现有的缓存机制容灾性较差,无法在缓存故障时防止数据库中的数据出错的技术问题。该方法包括:向缓存中写入数据时,根据数据写入时间为缓存中的各个数据分别设置对应的时间戳;将缓存中的各个数据持久化存储到数据库时,针对缓存中的每个数据,分别获取缓存中该数据的时间戳以及数据库中与该数据对应的数据记录的时间戳;当确定缓存中该数据的时间戳小于数据库中与该数据对应的数据记录的时间戳时,删除缓存中的该数据;否则,将缓存中的该数据及其对应的时间戳持久化存储到数据库中。

Cache based data persistence storage method and device

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示出了本专利技术实施例二提供的一种基于缓存的数据持久化存储方法的流程示意图;图3示出了本专利技术实施例三提供的一种基于缓存的数据持久化存储装置的结构框图。具体实施方式下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。本专利技术实施例提供了一种基于缓存的数据持久化存储方法及装置,至少能够解决现有的缓存机制容灾性较差,无法在缓存故障时防止数据库中的数据出错的技术问题。实施例一图1示出了本专利技术实施例一提供的一种基于缓存的数据持久化存储方法的流程示意图,该方法包括:步骤S110:向缓存中写入数据时,根据数据写入时间为缓存中的各个数据分别设置对应的时间戳。其中,时间戳用于表示数据写入缓存时的时间。时间戳的具体格式和精度可由本领域技术人员灵活设置,本专利技术对此不做限定。例如,假设一数据在2016年12月13日上午10点01分写入缓存,则该数据对应的时间戳为201612131001。另外,在缓存中存储数据时,可以将数据及其对应的时间戳作为一个数据组进行关联存储,也可以将时间戳作为数据本身的一个属性进行存储,本专利技术对具体存储形式不做限定。步骤S120:将缓存中的各个数据持久化存储到数据库时,针对缓存中的每个数据,分别获取缓存中该数据的时间戳以及数据库中与该数据对应的数据记录的时间戳。其中,将各个数据持久化存储到数据库中的时机可由本领域技术人员灵活设置,本专利技术对此不做限定。在持久化存储时,首先,要获取缓存中的该数据的时间戳;然后,在数据库中查找与该数据对应的数据记录,并获取与该数据对应的数据记录的时间戳。其中,与该数据对应的数据记录可通过各种形式进行存储。步骤S130:当确定缓存中该数据的时间戳小于数据库中与该数据对应的数据记录的时间戳时,删除缓存中的该数据;否则,将缓存中的该数据及其对应的时间戳持久化存储到数据库中。具体地,时间戳用于表示数据的写入时间,可通过数值形式进行表示。在本专利技术中,将时间的先后通过时间戳的大小来表示:时间越靠前的数据的时间戳越小,时间越靠后的数据的时间戳越大。由此可见,比较时间戳的大小实际上就是确定时间的先后。例如,假设数据一的写入时间为2016年12月13日上午10点01分,时间戳为201612131001;数据二的写入时间为2016年12月14日上午10点01分,时间戳为201612141001,由于数据一的写入时间早于数据二的写入时间,则数据一的时间戳小于数据二的时间戳。相应地,当缓存中该数据的时间戳小于数据库中与该数据对应的数据记录的时间戳时,说明缓存中的该数据的写入时间早于数据库中对应的数据记录的写入时间,即:缓存中的该数据为已过期的无效数据,因而删除缓存中的该数据,以防止出现数据错误现象。当缓存中该数据的时间戳不小于数据库中与该数据对应的数据记录的时间戳时,说明缓存中的该数据的写入时间晚于数据库中对应的数据记录的写入本文档来自技高网...
基于缓存的数据持久化存储方法及装置

【技术保护点】
一种基于缓存的数据持久化存储方法,包括:向缓存中写入数据时,根据数据写入时间为缓存中的各个数据分别设置对应的时间戳;将所述缓存中的各个数据持久化存储到数据库时,针对所述缓存中的每个数据,分别获取所述缓存中该数据的时间戳以及所述数据库中与该数据对应的数据记录的时间戳;当确定所述缓存中该数据的时间戳小于所述数据库中与该数据对应的数据记录的时间戳时,删除所述缓存中的该数据;否则,将所述缓存中的该数据及其对应的时间戳持久化存储到所述数据库中。

【技术特征摘要】
1.一种基于缓存的数据持久化存储方法,包括:向缓存中写入数据时,根据数据写入时间为缓存中的各个数据分别设置对应的时间戳;将所述缓存中的各个数据持久化存储到数据库时,针对所述缓存中的每个数据,分别获取所述缓存中该数据的时间戳以及所述数据库中与该数据对应的数据记录的时间戳;当确定所述缓存中该数据的时间戳小于所述数据库中与该数据对应的数据记录的时间戳时,删除所述缓存中的该数据;否则,将所述缓存中的该数据及其对应的时间戳持久化存储到所述数据库中。2.根据权利要求1所述的方法,其中,当确定所述缓存中该数据的时间戳小于所述数据库中与该数据对应的数据记录的时间戳时,所述方法进一步包括:将数据库中该数据及其对应的时间戳保存至所述缓存中。3.根据权利要求1或2所述的方法,其中,进一步包括:当检测到所述缓存故障时,将所述缓存故障期间产生的数据及其对应的时间戳持久化存储到所述数据库中。4.根据权利要求1-3任一所述的方法,其中,所述分别获取所述缓存中该数据的时间戳以及所述数据库中与该数据对应的数据记录的时间戳的步骤具体包括:分别获取所述缓存中的该数据各次写入时对应的时间戳,将各次写入时对应的时间戳中的最大值确定为所述缓存中该数据的时间戳;分别获取所述数据库中与该数据对应的各条数据记录的时间戳,将各条数据记录的时间戳中的最大值确定为所述数据库中与该数据对应的数据记录的时间戳。5.根据权利要求4所述的方法,其中,所述分别获取所述缓存中的该数据各次写入时对应的时间戳的步骤具体包括:根据所述缓存中的该数据的键值确定该数据各次写入时对应的时间戳;所述分别获取所述数据库中与该数...

【专利技术属性】
技术研发人员:王文铎陈宗志彭信东王康
申请(专利权)人:北京奇虎科技有限公司
类型:发明
国别省市:北京,11

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

1