一种缓存数据的方法和装置制造方法及图纸

技术编号:14637428 阅读:65 留言:0更新日期:2017-02-15 11:36
本发明专利技术公开了一种缓存数据的方法和装置。该方法包括:对于一条数据,在缓存中设置与该数据对应的两个键‑值对;第一键‑值对存放该数据本身,设置其在缓存中的有效时间为第一预设时间;第二键‑值对标记该数据的预失效时间,设置其在缓存中的有效时间为第二预设时间,第二预设时间小于第一预设时间;当收到一数据请求时,根据该数据请求在缓存中查找;如果从缓存只查找到第一键‑值对,则将第一键‑值对中的值返回给请求方,从数据库重新读取该请求的数据来更新缓存中对应的第一键‑值对中的值,并重新设置对应的第二键‑值对以及对应的第一预设时间和第二预设时间。上述方案能保证缓存中的数据不失效,保证数据的访问速度。

【技术实现步骤摘要】

本专利技术涉及计算机
,具体涉及一种缓存数据的方法和装置
技术介绍
随着互联网的蓬勃发展,在很多应用场景都需要存储海量的数据。在从数据库读取数据时,由于数据库和访问量都过于庞大,会导致访问数据的时间延迟,影响读取数据的速度。通常情况下,会把访问频率较高的热数据放入缓存中,在接收到访问热数据的请求时直接从缓存中进行读取,大大增加了读取速度。但是,缓存中的数据都存在一个失效时间,一旦超过失效时间,该数据就会自动从缓存中删除,删除后的数据再次被访问时需要从数据库中重新读取数据,因此对于一些热数据来说,其访问速度会下降,这就严重影响访问数据的速度,降低用户体验。
技术实现思路
鉴于上述问题,提出了本专利技术以便提供一种克服上述问题或者至少部分地解决上述问题的缓存数据的方法和装置。依据本专利技术的一个方面,提供了一种缓存数据的方法,包括:对于一条数据,在缓存中设置与该数据对应的两个键-值对;其中,用第一键-值对存放该数据本身,设置其在缓存中的有效时间为第一预设时间;用第二键-值对标记该数据的预失效时间,设置其在缓存中的有效时间为第二预设时间;第二预设时间小于第一预设时间;当收到一数据请求时,根据该数据请求在所述缓存中查找与请求的数据对应的两个键-值对;如果从缓存查找到第一键-值对,但未查找到第二键-值对,则将第一键-值对中的值返回给请求方,从数据库重新读取该请求的数据来更新缓存中对应的第一键-值对中的值,并重新设置对应的第二键-值对以及对应的第一预设时间和第二预设时间。可选地,保存在所述缓存中的数据为热数据,所述热数据为数据库中的被访问频率高于预设值的数据。可选地,该方法进一步包括:如果从缓存中查找到第一键-值对,也查找到第二键-值对,则将第一键-值对中的值返回给请求方,不作其他处理。可选地,该方法进一步包括:如果从缓存未查找到第一键-值对,则从数据库中获取该数据请求所请求的数据返回给请求方。可选地,所述用第一键-值对存放该数据本身,用第二键-值对标记该数据的预失效时间包括:将第一键-值对中的值设置为该条数据本身;将第二键-值对中的值设置为固定值或任意值。可选地,将所述第一预设时间对应的时间值和第二预设时间对应的时间值保存到指定位置;每次设置或重置一条数据的第一预设时间和第二预设时间,从所述指定位置读取对应的时间值并进行设置或重置。可选地,该方法进一步包括:根据数据的访问频率以及缓存的大小,调整第一预设时间对应的时间值和第二预设时间对应的时间值。根据本专利技术的另一方面,提供了一种缓存数据的装置,其中,该装置包括:缓存处理单元,适于对于一条数据,在缓存中设置与该数据对应的两个键-值对;其中,用第一键-值对存放该数据本身,设置其在缓存中的有效时间为第一预设时间;用第二键-值对标记该数据的预失效时间,设置其在缓存中的有效时间为第二预设时间;第二预设时间小于第一预设时间;请求处理单元,适于当收到一数据请求时,根据该数据请求在所述缓存中查找与请求的数据对应的两个键-值对;如果从缓存查找到第一键-值对,但未查找到第二键-值对时,将第一个键对应的值返回给请求方,并向缓存处理单元发送第一通知;所述缓存处理单元,进一步适于收到第一通知时,从数据库重新读取该请求的数据来更新缓存中对应的第一键-值对中的值,并重新设置对应的第二键-值对以及对应的第一预设时间和第二预设时间。可选地,保存在所述缓存中的数据为热数据,所述热数据为数据库中的被访问频率高于预设值的数据。可选地,所述请求处理单元,进一步适于当从缓存中查找到第一键-值对,也查找到第二键-值对时,将第一键-值对中的值返回给请求方,不作其他处理。可选地,所述请求处理单元,进一步适于当从缓存未查找到第一键-值对,则从数据库中获取该数据请求所请求的数据返回给请求方。可选地,所述缓存处理单元,适于将第一键-值对中的值设置为该条数据本身,将第二键-值对中的值设置为固定值或任意值。可选地,所述第一预设时间对应的时间值和第二预设时间对应的时间值保存在指定位置;所述缓存处理单元,适于在每次设置或重置一条数据的第一预设时间和第二预设时间,从所述指定位置读取对应的时间值并进行设置或重置。可选地,该装置进一步包括:参数调整单元,适于根据数据的访问频率以及缓存的大小,调整第一预设时间对应的时间值和第二预设时间对应的时间值。根据本专利技术的技术方案,在进行数据缓存时设置与该数据对应的两个键-值对,第一键-值对存放该数据本身,并设置其在缓存中的有效时间为第一预设时间,第二键-值对标记该数据的预失效时间,并将其在缓存中的有效时间为第二预设时间,第一预设时间大于第二预设时间,表示第二键-值对比第一键值对先失效。在访问数据时,如果两个键-值对均被查找到,说明该数据暂时不会失效,不做处理;如果只查找到一个键-值对,说明该数据即将失效,则将该数据返回给请求方的同时,从数据库中重新读取该数据并重新设置失效时间。可见,本专利技术的技术方案是随着用户访问的同时,对缓存中数据的失效时间进行检查,一旦检查到热数据即将失效,则重新从数据库中读取并设置,从而保证热数据一直存在缓存中,解决缓存中热数据失效的问题,避免请求者从数据库中访问热数据,影响访问速度的情况。综上所述,本专利技术能保证缓存中的数据不失效,且保证数据的访问速度,增强用户的体验。上述说明仅是本专利技术技术方案的概述,为了能够更清楚了解本专利技术的技术手段,而可依照说明书的内容予以实施,并且为了让本专利技术的上述和其它目的、特征和优点能够更明显易懂,以下特举本专利技术的具体实施方式。附图说明通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本专利技术的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:图1示出了根据本专利技术一个实施例提供的一种缓存数据的方法流程示意图;图2示出了根据本专利技术一个实施例提供的一种缓存数据的装置示意图;图3示出了根据本专利技术另一个实施例提供的一种缓存数据的装置示意图。具体实施方式下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。图1示出了根据本专利技术一个实施例提供的一种缓存数据的方法流程示意图。如图1所示,该方法包括:步骤S110,对于一条数据,在缓存中设置与该数据对应的两个键-值对;其中,用第一键-值对存放该数据本身,设置其在缓存中的有效时间为第一预设时间;用第二键-值对标记该数据的预失效时间,设置其在缓存中的有效时间为第二预设时间;第二预设时间小于第一预设时间。在本步骤中,第一键-值对中的键和第二键-值对中的键所代表的意义类似,均指该数据的关键信息,用户在请求信息时,通过数据的关键信息来进行查找,因为每个数据的关键信息都是唯一的,所以当用户针对一条数据进行访问时,只能查找到对应该数据的第一键-值对和第二键-值对中的一个或者两个。第一键-值对中的值存储的内容即为数据本身,那么用户请求数据时,返回的最终结果即第一键-值对中的值存储的内容;因为第二键-值对的作用只是标本文档来自技高网...
一种缓存数据的方法和装置

【技术保护点】
一种缓存数据的方法,包括:对于一条数据,在缓存中设置与该数据对应的两个键‑值对;其中,用第一键‑值对存放该数据本身,设置其在缓存中的有效时间为第一预设时间;用第二键‑值对标记该数据的预失效时间,设置其在缓存中的有效时间为第二预设时间;第二预设时间小于第一预设时间;当收到一数据请求时,根据该数据请求在所述缓存中查找与请求的数据对应的两个键‑值对;如果从缓存查找到第一键‑值对,但未查找到第二键‑值对,则将第一键‑值对中的值返回给请求方,从数据库重新读取该请求的数据来更新缓存中对应的第一键‑值对中的值,并重新设置对应的第二键‑值对以及对应的第一预设时间和第二预设时间。

【技术特征摘要】
1.一种缓存数据的方法,包括:对于一条数据,在缓存中设置与该数据对应的两个键-值对;其中,用第一键-值对存放该数据本身,设置其在缓存中的有效时间为第一预设时间;用第二键-值对标记该数据的预失效时间,设置其在缓存中的有效时间为第二预设时间;第二预设时间小于第一预设时间;当收到一数据请求时,根据该数据请求在所述缓存中查找与请求的数据对应的两个键-值对;如果从缓存查找到第一键-值对,但未查找到第二键-值对,则将第一键-值对中的值返回给请求方,从数据库重新读取该请求的数据来更新缓存中对应的第一键-值对中的值,并重新设置对应的第二键-值对以及对应的第一预设时间和第二预设时间。2.如权利要求1所述的方法,其中,保存在所述缓存中的数据为热数据,所述热数据为数据库中的被访问频率高于预设值的数据。3.如权利要求1所述的方法,其中,该方法进一步包括:如果从缓存中查找到第一键-值对,也查找到第二键-值对,则将第一键-值对中的值返回给请求方,不作其他处理。4.如权利要求1所述的方法,其中,该方法进一步包括:如果从缓存未查找到第一键-值对,则从数据库中获取该数据请求所请求的数据返回给请求方。5.如权利要求1所述的方法,其中,所述用第一键-值对存放该数据本身,用第二键-值对标记该数据的预失效时间包括:将第一键-值对中的值设置为该条数据本身;将第二键-值对中的值设置为固定值或任意值。6.一种缓存数据的装置,其中,该装置包括:...

【专利技术属性】
技术研发人员:李勇智
申请(专利权)人:北京奇虎科技有限公司奇智软件北京有限公司
类型:发明
国别省市:北京;11

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

1