《缓存数据管理方法和装置的制作方法》由会员分享,可在线阅读,更多相关《缓存数据管理方法和装置的制作方法(4页珍藏版)》请在金锄头文库上搜索。
1、缓存数据管理方法和装置的制作方法专利名称:缓存数据管理方法和装置的制作方法技术领域:本发明涉及缓存维护技术,具体而言,涉及一种缓存数据管理方法和装置。背景技术:缓存在分布式系统中被广泛的使用,用于提高分布式环境下节点之间的交互效 率,减少了网络交互的次数,降低对网络带宽的要求,从而使系统具有更好的响应能力和伸 缩能力。根据分布式节点的职责不同,不同节点对缓存有不同的要求。常见的缓存有页面 缓存、数据缓存、对象缓存等。页面缓存经常在负责UI展现的节点中被使用到,通过静态数 据或者模板数据的缓存,提高界面的展现效率。数据缓存在负责持久化或查询的节点上广 泛使用,一般对数据库服务器的数据进行缓存,从
2、而减少数据库交互的次数,降低数据库的 压力。在负责业务服务的节点上,对象缓存用于业务模型的缓存,从而使业务模型能够更快 的得到构建和使用,避免不必要的数据获取和模型构建运算。无论是哪种缓存,都会涉及到 缓存数据的过期和更新,如果无法解决则会出现数据一致性问题。例如,数据缓存的数据在 数据库中发生了变化,必须更新数据缓存,使其与数据库中的数据保持一致。在分布式环境中,缓存被广泛的使用,缓存一般以(键,值)对的形式进行组织。缓 存中的数据都大多数都具有一定的时效性,随着系统业务的推进,键对应的目标数据值可 能发生变化,这就需要一种机制进行缓存中数据的更新和维护。传统的缓存数据维护方法 主要有1、设
3、置缓存的超时,缓存使用了一段时间后,再次使用该缓存中的数据时,强制进 行缓存刷新;2、通过数据缓存端提供主动清除缓存或者主动请求缓存刷新的动作,通过人为交 互保持缓存的同步,例如每次用户登录时同步;3、数据缓存端对缓存数据的变化进行轮询,判断缓存数据是否变化,如果变化进 行缓存的数据同步。第一种和第二种方法,刷新缓存时粒度太粗,网络流量开销大,第三种方式,因为 判断缓存中的数据是否变化的操作本身就是一次分布式的交互动作,随着缓存类型和缓存 数据的增加,可能带来大量的细小网络交互动作,网络交互次数多。它们都无法保证数据的 实时一致性,容易使系统阻塞,出现系统响应时间不稳定的现象。另外由于缓存数据
4、量一般 比较大,直接采用刷新数据的方式,对与服务器也会造成较大的压力。因此,需要一种新的用于缓存数据更新的方式,既能够及时地保证缓存数据与目 标数据的一致性,又能保证减轻更新缓存数据是的网络压力。发明内容本发明所要解决的技术问题在于,提供一种新的用于缓存数据更新的方式,既能 够及时地保证缓存数据与目标数据的一致性,又能保证减轻更新缓存数据是的网络压力。有鉴于此,本发明提供一种缓存数据管理方法,包括步骤102,为目标数据生成版本信息;步骤104,在缓存中设置缓存区域,将所述目标数据连同所述目标数据的版本信 息存储在所述缓存区域中作为缓存数据和所述缓存数据的版本信息,根据所述缓存数据的 版本信息设
5、置所述缓存区域的版本信息;步骤106,在所述目标数据改变时,更新所述目标 数据的版本信息;以及步骤108,在确定所述目标数据的版本信息和所述缓存区域的版本 信息不相同时,根据所述目标数据和所述目标数据的版本信息来更新所述缓存数据以及更 新所述缓存数据的版本信息。通过该技术方案,通过版本管理,可实现仅对过期的缓存数据 进行更新。在上述技术方案中,优选地,在所述步骤108中,还通过对所述目标数据的版本信 息做镜像,并通过所述镜像取来取得所述目标数据的版本信息,以用于与所述缓存数据的 版本信息进行比较来确定所述目标数据的版本信息和所述缓存区域的版本信息是否相同。在上述技术方案中,优选地,其特征在于,
6、在所述步骤106中,还包括对所述目标 数据的版本信息进行监听,并在监听到所述目标数据的版本信息发生变化时,对所述目标 数据的版本信息做镜像。在上述技术方案中,优选地,在所述步骤106中,还包括定时、和/或在所述缓存 数据被调用时,对所述目标数据的版本信息做镜像。在上述技术方案中,优选地,所述缓存区域的版本信息为所述缓存区域中所有缓 存数据的版本信息中的最新版本信息。本发明还提供一种缓存数据管理装置,包括版本服务模块,为目标数据生成版本 信息;缓存区域模块,在缓存中设置缓存区域,以用于将所述目标数据连同所述目标数据的 版本信息存储在所述缓存区域中作为缓存数据和所述缓存数据的版本信息,缓存端模块根
7、 据所述缓存数据的版本信息设置所述缓存区域的版本信息;所述缓存端模块,所述版本服 务模块在所述目标数据改变时,更新所述目标数据的版本信息,所述缓存端模块在确定所 述目标数据的版本信息和所述缓存区域的版本信息不相同时,根据所述目标数据和所述目 标数据的版本信息来更新所述缓存数据以及更新所述缓存数据的版本信息。通过该技术方 案,通过版本管理,可实现仅对过期的缓存数据进行更新。在上述技术方案中,优选地,还包括版本代理模块,通过对所述目标数据的版本 信息做镜像,并通过所述镜像取得所述目标数据的版本信息,以用于与所述缓存数据的版 本信息进行比较来确定所述目标数据的版本信息和所述缓存区域的版本信息是否相同
8、。在上述技术方案中,优选地,所述版本代理模块还对所述目标数据的版本信息进 行监听,并在监听到所述目标数据的版本信息发生变化时,对所述目标数据的版本信息做 镜像。在上述技术方案中,优选地,所述版本代理模块定时、和/或在所述缓存数据被调 用时,对所述目标数据的版本信息做镜像。在上述技术方案中,优选地,所述缓存区域的版本信息为所述缓存区域中所有缓 存数据的版本信息中的最新版本信息。通过上述技术方案,可以实现一种缓存数据管理方法和装置,能够通过该技术方 案,通过镜像技术和版本管理,可实现仅对过期的缓存数据进行更新,既能够保证缓存数据 的有效性,又能避免造成过大的网络压力。图1是根据本发明的-个实施例的
9、缓存斐_f理方法的流程图2是根据本发明的-个实施例的缓存斐_f理装置的框图3是根据本发明的-个实施例的缓存斐_f理装置的示意图4是根据本发明的-个实施例的缓存斐_f理装置的工作流程图5是根据本发明的-个实施例的缓存斐f理装置的工作示意图。具体实施例方式为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实 施方式对本发明进行进一步的详细描述。在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可 以采用其他不同于在此描述的其他方式来实施,因此,本发明并不限于下面公开的具体实 施例的限制。图1是根据本发明的一个实施例的缓存数据管理方法的流程图。如图1所示,本发明提
10、供一种缓存数据管理方法,包括步骤102,为目标数据生成 版本信息;步骤104,在缓存中设置缓存区域,将所述目标数据连同所述目标数据的版本信 息存储在所述缓存区域中作为缓存数据和所述缓存数据的版本信息,根据所述缓存数据的 版本信息设置所述缓存区域的版本信息;步骤106,在所述目标数据改变时,更新所述目标 数据的版本信息;以及步骤108,在确定所述目标数据的版本信息和所述缓存区域的版本 信息不相同时,根据所述目标数据和所述目标数据的版本信息来更新所述缓存数据以及更 新所述缓存数据的版本信息。通过该技术方案,通过版本管理,可实现仅对过期的缓存数据 进行更新。在上述技术方案中,在所述步骤108中,还通
11、过对所述目标数据的版本信息做镜 像,并通过所述镜像取来取得所述目标数据的版本信息,以用于与所述缓存数据的版本信 息进行比较来确定所述目标数据的版本信息和所述缓存区域的版本信息是否相同。在上述技术方案中,其特征在于,在所述步骤106中,还包括对所述目标数据的 版本信息进行监听,并在监听到所述目标数据的版本信息发生变化时,对所述目标数据的 版本信息做镜像。在上述技术方案中,在所述步骤106中,还包括定时、和/或在所述缓存数据被调 用时,对所述目标数据的版本信息做镜像。在上述技术方案中,所述缓存区域的版本信息为所述缓存区域中所有缓存数据的 版本信息中的最新版本信息。图2是根据本发明的一个实施例的缓存
12、数据管理装置的框图。如图2所示,本发明还提供一种缓存数据管理装置200,包括版本服务模块202, 为目标数据生成版本信息;缓存区域模块204,在缓存中设置缓存区域,以用于将所述目标 数据连同所述目标数据的版本信息存储在所述缓存区域中作为缓存数据和所述缓存数据 的版本信息,缓存端模块206根据所述缓存数据的版本信息设置所述缓存区域的版本信 息;所述缓存端模块206,所述版本服务模块202在所述目标数据改变时,更新所述目标数 据的版本信息,所述缓存端模块206在确定所述目标数据的版本信息和所述缓存区域的版本信息不相同时,根据所述目标数据和所述目标数据的版本信息来更新所述缓存数据以及 更新所述缓存数
13、据的版本信息。通过该技术方案,通过版本管理,可实现仅对过期的缓存数 据进行更新。在上述技术方案中,还包括版本代理模块208,通过对所述目标数据的版本信息 做镜像,并通过所述镜像取得所述目标数据的版本信息,以用于与所述缓存数据的版本信 息进行比较来确定所述目标数据的版本信息和所述缓存区域的版本信息是否相同。在上述技术方案中,所述版本代理模块208还对所述目标数据的版本信息进行监 听,并在监听到所述目标数据的版本信息发生变化时,对所述目标数据的版本信息做镜像。在上述技术方案中,所述版本代理模块208定时、和/或在所述缓存数据被调用 时,对所述目标数据的版本信息做镜像。在上述技术方案中,所述缓存区域
14、的版本信息为所述缓存区域中所有缓存数据的 版本信息中的最新版本信息。图3是根据本发明的一个实施例的缓存数据管理装置的示意图。如图3所示,本发明的技术方案是通过缓存的版本化和版本镜像技术解决传统的 缓存维护中面临的问题,在本实施例的缓存数据管理装置中主要包括如下的一些功能部 件缓存区域存储缓存数据,以(键,值)的方式存储数据,应用程序通过缓存区域直 接使用缓存中的数据版本服务器306(版本服务模块)在分布式环境中的一立的服务器,用于维 护数据的版本,它的数据形式是(键,版本),并按照缓存区域对数据进行组织版本服务代理304 (版本代理模块)负责监测缓存版本的变化,在缓存端本地或 者缓存端附近的网
15、络中以(键,版本)的方式对版本服务器中维护的版本信息做镜像缓存端302 (缓存端模块)负责维护缓存区域,并在版本服务代理304中注册其 所关注的缓存区域的版本情况。缓存的版本信息分为两个部分a.键对应的目标数据自身的版本,我们记为Vb.缓存区域的总的版本标识区域版本,我们记为RV(Region Version)虽然缓存区域对外提供的数据结构是(键,值)对的形式,但还是可以根据它对当 前缓存数据所处的版本进行维护,通过缓存区域的版本信息与版本服务代理304的版本镜 像,可以知道当前数据是否发生变化。版本服务器306对版本的维护,采用递增的方式进行维护,也就是说每次键对应 的值发生变化,版本值V会
16、递增。区域版本是当前区域中所有版本值中的最大值。由于版 本的单调递增的性质,可以利用这个性质进行增量的版本刷新。例如,应用程序在从缓存区 域按键取数据的时候,首先检查数据的有效性,如果数据有效,立即使用,如果数据无效,则 请求能够提供目标数据的节点,装载数据。在检查数据的有效性时,一般有个超时设置,只 有对超时的数据才进行有效性的检查。可选的,对于热点数据,本实施的缓存数据管理装置可以周期性的检查数据的有 效性,并把无效数据以批的方式刷新,减少每次请求数据时由于数据装载造成对效率的影 响。通过以上可知,缓存区域的使用方式,决定了大部分数据是在其真实发生使用,并 且发生变化才会重新装载,避免了对没有用到的数据同步,造成带宽和存储的浪费,也避免 了由于大量数据变化或者初始化时发生巨量的网络请求。缓存端302的工作流程可以如图4所示。缓存端302在启动时,首先进行步骤402, 缓存区域的初始化,加载持久化到本地的缓存数据。然后进行步骤404,向版本代理304注 册其所关心的缓存区域,最后进行步骤406向版本代理304发起请求,对比当前缓存