CN105245560A - 一种实现分布式缓存的方法、装置及*** - Google Patents
一种实现分布式缓存的方法、装置及*** Download PDFInfo
- Publication number
- CN105245560A CN105245560A CN201410331467.4A CN201410331467A CN105245560A CN 105245560 A CN105245560 A CN 105245560A CN 201410331467 A CN201410331467 A CN 201410331467A CN 105245560 A CN105245560 A CN 105245560A
- Authority
- CN
- China
- Prior art keywords
- data
- change
- version information
- version
- request
- 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.)
- Granted
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请公开了一种实现分布式缓存的方法以实现及时更新缓存客户端的缓存的目的。例如,本申请公开的应用于分布式缓存***的缓存客户端侧的方法可以包括:主动周期性地向分布式缓存***的缓存服务器侧发出获取变更后数据的版本信息的请求;接收所述缓存服务器侧针对所述请求反馈的版本信息;根据所述版本信息,从数据源中获取所述变更后数据;将所获取的变更后数据缓存到所述缓存客户端侧本地。另外,本申请还公开了一种实现分布式缓存的装置及***。
Description
技术领域
本发明涉及分布式缓存领域,尤其涉及一种实现分布式缓存的方法、装置及***。
背景技术
分布式缓存,是指将数据存储到分布式缓存***部署的各个缓存客户端本地内存的缓存方法。分布式缓存***通常由缓存服务器端和各个缓存客户端组成。
为了实现数据同步,现有的分布式缓存***通常由缓存服务器端将变更后的数据写入数据源,再由缓存服务器端通知各个分布式缓存客户端将变更后的数据刷新到客户端本地。为了使缓存服务器端可以通知到缓存客户端,通常需要在缓存服务器端的记录表中记录各个缓存客户端的IP和主机名等信息,从而缓存服务器可以遍历所记录的IP和主机名,逐一向缓存客户端发出通知。
但是,随着缓存客户端的数量日益增多,缓存服务器端发送通知的耗时越来越大,甚至可能导致有些缓存客户端更新不及时。而且,经常会有缓存客户端由于各种原因而下线,而缓存服务器端仍然按照记录表向这些已下线的缓存客户端发送通知,导致无法同步的缓存客户端越来越多,最终威胁整个分布式缓存***的稳定性。
发明内容
有鉴于此,本申请的目的在于提供一种实现分布式缓存的方法、装置及***以实现及时更新缓存客户端的缓存的目的。
在本申请实施例的第一个方面,提供了一种应用于分布式缓存***的缓存客户端侧的实现分布式缓存的方法。例如,该方法可以包括:主动周期性地向分布式缓存***的缓存服务器侧发出获取变更后数据的版本信息的请求;接收所述缓存服务器侧针对所述请求反馈的版本信息;根据所述版本信息,从数据源中获取所述变更后数据;将所获取的变更后数据缓存到所述缓存客户端侧本地。
在本申请实施例的第二个方面,提供了一种配置于分布式缓存***的缓存客户端侧的实现分布式缓存的装置。例如,该装置可以包括:主动请求单元,可以用于主动周期性地向分布式缓存***的缓存服务器侧发出获取变更后数据的版本信息的请求;接收版本单元,可以用于接收所述缓存服务器侧针对所述请求反馈的版本信息;获取数据单元,可以用于根据所述版本信息,从数据源中获取所述变更后数据;缓存更新单元,可以用于将所获取的变更后数据缓存到所述缓存客户端侧本地。
在本申请实施例的第三个方面,提供了一种应用于分布式缓存***的缓存服务器侧的实现分布式缓存的方法。例如,该方法可以包括:接收分布式缓存***的缓存客户端侧主动周期性地发出的获取变更后数据的版本信息的请求;针对所述请求向所述缓存客户端侧反馈版本信息,以便所述缓存客户端侧根据版本信息,从数据源中获取变更后数据,以及,将所获取的变更后数据缓存到所述缓存客户端侧本地。
在本申请实施例的第四个方面,提供了一种配置于分布式缓存***的缓存服务器侧的实现分布式缓存的装置。例如,该装置可以包括:接收请求单元,用于接收分布式缓存***的缓存客户端侧主动周期性地发出的获取变更后数据的版本信息的请求;版本反馈单元,用于针对所述请求向所述缓存客户端侧反馈版本信息,以便所述缓存客户端侧根据版本信息,从数据源中获取变更后数据,以及,将所获取的变更后数据缓存到所述缓存客户端侧本地。
在本申请实施例的第五个方面,提供了一种分布式缓存***。例如,该***可以包括:缓存客户端侧,可以用于主动周期性地向分布式缓存***的缓存服务器侧发出获取变更后数据的版本信息的请求,接收所述缓存服务器侧针对所述请求反馈的版本信息,根据所述版本信息,从数据源中获取所述变更后数据,将所获取的变更后数据缓存到本地;缓存服务器侧,可以用于接收分布式缓存***的缓存客户端侧主动周期性地发出的获取变更后数据的版本信息的请求,针对所述请求向所述缓存客户端反馈版本信息。
可见本申请具有如下有益效果:
由于本申请实施例在缓存客户端侧主动周期性地向分布式缓存***的缓存服务器侧发出获取变更后数据的版本信息的请求,因此,可以主动从缓存服务器侧获得版本信息,根据版本信息从数据源中获取变更后数据,并进行缓存刷新,从而无需等待缓存服务器端逐一通知各个缓存客户端,可以避免缓存服务器侧发送大量通知导致的耗时问题,使缓存客户端的缓存数据得以及时更新。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例公开的分布式缓存***的结构示意图之一;
图2为本申请实施例公开的应用于缓存客户端侧的实现分布式缓存的方法流程示意图;
图3为本申请实施例涉及的变更后数据的示意图;
图4为本申请实施例公开的分布式缓存***的结构示意图之二;
图5为本申请实施例公开的配置于缓存客户端侧的实现分布式缓存的装置结构示意图;
图6为本申请实施例公开的应用于缓存服务器侧的实现分布式缓存的方法流程示意图;
图7为本申请实施例公开的配置于缓存服务器侧的实现分布式缓存的装置结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
针对现有技术缓存服务器端依赖记录表记录的IP和主机名向缓存客户端发送变更通知导致的缓存客户端更新不及时的问题,本申请的发明人发现在缓存客户端侧主动周期性地向分布式缓存***的缓存服务器侧发出获取变更后数据的版本信息的请求,可以主动从缓存服务器侧获得版本信息,根据版本信息从数据源中获取变更后数据,并进行缓存刷新,从而无需等待缓存服务器端逐一通知各个缓存客户端,可以避免缓存服务器侧发送大量通知导致的耗时问题,使缓存客户端的缓存数据得以及时更新。另外,由于缓存客户端侧主动从缓存服务器侧获取变更后数据的版本信息,因此,已经下线的缓存客户端相当于自动取消了缓存更新的需求,因此,缓存客户端的下线不会导致无法同步的缓存客户端增多,使分布式缓存***更加稳定。
基于上述分析,本申请实施例提供了如下的实现分布式缓存的方法、装置及***。
例如,如图1所示,为本申请实施例分布式缓存***的组网示意图。如图1所示,本申请实施例分布式缓存***可以包括缓存服务器侧101,缓存客户端侧102的若干个缓存客户端1021,以及数据源103。例如,数据源103可以为用于长期存储数据的数据库。缓存客户端1021可以是部署在寄主服务器中的功能组件,用于提供数据缓存记录功能。在一个分布式缓存***中,可以包括多个寄主服务器,一个寄主服务器上可以部署一个或多个缓存客户端。
下面,结合图2对本申请实施例应用于缓存客户端侧的实现分布式缓存的方法进行详细说明。例如,该方法可以包括:
S210、主动周期性地向分布式缓存***的缓存服务器端发出获取变更后数据的版本信息的请求。
例如,在一些可能的实施方式中,所述缓存客户端侧可以设置有客户端心跳触发模块。例如,可以一个寄主服务器设置一个客户端心跳触发模块。该客户端心跳触发模块可以与缓存服务器建立连接。由所述客户端心跳触发模块以心跳的方式主动周期性地向分布式缓存***的缓存服务器侧发出获取变更后数据的版本信息的请求。再例如,在另一些可能的实施方式中,可以在缓存客户端内设置定时器事件,由各个缓存客户端通过自身的定时器事件分别主动周期性地向分布式缓存***的缓存服务器端发出获取变更后数据的版本信息的请求。
其中,变更后数据的版本信息,可以为变更后数据的最新版本标识,或者,可以为变更后数据的最新版本标识与所述缓存客户端自身已缓存数据的当前版本标识的比较结果所确定的变更版本范围。
S220、接收所述缓存服务器端针对所述请求反馈的版本信息。
S230、根据所述版本信息,从数据源中获取所述变更后数据。
在一些可能的实现方式中,变更后数据的版本信息可以为变更后数据的最新版本标识,缓存客户端可以将所获取的最新版本标识与所述缓存客户端自身已缓存数据的当前版本标识进行比较以确定变更版本范围,从数据源中获取所述变更版本范围对应的数据。例如,假设所接收的版本信息为变更后数据的最新版本标识[1924],缓存客户端自身已缓存数据的当前版本标识为[1915]。通过将两个版本标识进行比较,可以确定变更版本范围为(1915,1924],进而从数据源中读取出如图3所示版本范围在(1915,1924]内的数据。需要说明的是,该图3所示的数据仅为部分示意图,本发明对数据的内容、格式以及对数据的版本标识的设置方式并不进行限制。
在另一些可能的实现方式中,变更后数据的版本信息可以为变更后数据的最新版本标识与所述缓存客户端自身已缓存数据的当前版本标识的比较结果所确定的变更版本范围,则缓存客户端侧可以从数据源中获取所述变更版本范围对应的数据。
S240、将所获取的变更后数据缓存到所述缓存客户端侧本地。
例如,对于在缓存客户端侧设置客户端心跳触发模块的实施方式来说,从数据源获取变更后数据之后,客户端心跳触发模块可以触发该寄主服务器上部署的缓存客户端进行缓存刷新操作,进而缓存客户端可以将所获取的变更后数据缓存到本地。需要说明的是,此处的本地可以指缓存客户端所在寄主服务器为该缓存客户端分配的本地存储空间。
由于本申请实施例在缓存客户端侧主动周期性地向分布式缓存***的缓存服务器侧发出获取变更后数据的版本信息的请求,缓存客户端侧可以主动从缓存服务器侧获得版本信息,根据版本信息从数据源中获取变更后数据,并进行缓存刷新,从而无需等待缓存服务器侧逐一通知各个缓存客户端,可以避免缓存服务器侧发送大量通知导致的耗时问题,使缓存客户端的缓存数据得以及时更新。
在一些可能的实施方式中,为了不影响缓存服务器侧对数据源的读/写速度,本申请实施例将对数据源的读/写以及对缓存客户端侧请求的响应分别部署在两个不同的服务器上。如图4所示,所述分布式缓存***的缓存服务器侧可以包括缓存中心服务器1011以及版本管理服务器1012。其中:
缓存中心服务器1011,可以用于将变更后的数据写入数据源103,以及,主动周期性地向版本管理服务器1012发送变更后数据的最新版本标识。例如,如图4所示,可以在缓存中心服务器1011处设置服务器心跳触发模块105,缓存中心服务器1011可以将变更后数据的最新版本标识提交给服务器心跳触发模块105,该服务器心跳触发模块105与版本管理服务器1012建立连接,以心跳的方式主动周期性地向版本管理服务器1012发送该最新版本标识。
版本管理服务器1012,可以用于接收所述缓存中心服务器1011主动周期性地发送的变更后数据的最新版本标识,根据所接收的最新版本标识保存所述变更后数据的版本信息。例如,版本管理服务器1012可以将缓存中心服务器1011发送的最新版本标识作为变更后数据的版本信息保存下来。例如,版本管理服务器1012保存的信息可以包括数据的类型、数据的名称、数据的最新版本标识等。
在该实施方式中,可以在缓存客户端侧主动周期性地向该版本管理服务器1012发出获取变更后数据的版本信息的请求,接收该版本管理服务器1012针对所述请求反馈的版本信息。例如,如图4所示,可以由缓存客户端侧设置的客户端心跳触发模块104以心跳方式主动周期性地向版本管理服务器1012发出获取所述版本信息的请求,接收版本管理服务器1012反馈的版本信息,在根据版本信息从数据源103获取变更后数据之后,触发缓存客户端1021将变更后数据缓存到本地。
由于该实施方式的缓存中心服务器不需要处理缓存客户端获取版本信息的请求,由专门的版本管理服务器来接收以及处理缓存客户端获取版本信息的请求,因此,版本管理服务器可以分担缓存中心服务器的压力,不影响缓存中心服务器对数据源的读写速度,缓存客户端的请求也可以及时得到响应,提高了分布式缓存***的稳定性。
与上述应用于分布式缓存***的缓存客户端侧的实现分布式缓存的方法相对应的,本申请实施例还提供了一种实现分布式缓存的装置,配置于分布式缓存***的缓存客户端侧。
例如,参见图5,为本申请实施例公开的配置于缓存客户端侧的实现分布式缓存的装置结构示意图。如图5所示,该装置可以包括:
主动请求单元510,可以用于主动周期性地向分布式缓存***的缓存服务器侧发出获取变更后数据的版本信息的请求。例如,在一些可能的实施方式中,所述缓存客户端侧可以设置有客户端心跳触发模块。所述主动请求单元510,可以用于通过所述客户端心跳触发模块以心跳的方式主动周期性地向分布式缓存***的缓存服务器侧发出获取变更后数据的版本信息的请求。接收版本单元520,可以用于接收所述缓存服务器侧针对所述请求反馈的版本信息。获取数据单元530,可以用于根据所述版本信息,从数据源中获取所述变更后数据。缓存更新单元540,可以用于将所获取的变更后数据缓存到所述缓存客户端侧本地。
由于本申请实施例的主动请求单元510在缓存客户端侧主动周期性地向分布式缓存***的缓存服务器侧发出获取变更后数据的版本信息的请求,接收版本单元520可以主动从缓存服务器侧获得版本信息,进而由获取数据单元530根据版本信息从数据源中获取变更后数据,并由缓存更新单元540进行缓存刷新,从而无需等待缓存服务器侧逐一通知各个缓存客户端,可以避免缓存服务器侧发送大量通知导致的耗时问题,使缓存客户端的缓存数据得以及时更新。
在一些可能的实施方式中,变更后数据的版本信息可以为变更后数据的最新版本标识,所述获取数据单元530,可以用于将所获取的最新版本标识与所述缓存客户端侧自身已缓存数据的当前版本标识进行比较以确定变更版本范围,从数据源中获取所述变更版本范围对应的数据。
在一些可能的实施方式中,为了不影响缓存服务器侧对数据源的读/写速度,本申请实施例将对数据源的读/写以及对缓存客户端侧请求的响应分别部署在两个不同的服务器上。如图4所示,所述分布式缓存***的缓存服务器侧可以包括缓存中心服务器1011以及版本管理服务器1012。其中,所述缓存中心服务器1011,可以用于将变更后的数据写入所述数据源,以及,主动周期性地向版本管理服务器发送变更后数据的最新版本标识。所述版本管理服务器1012,可以用于接收所述缓存中心服务器主动周期性地发送的变更后数据的最新版本标识,根据所接收的最新版本标识保存所述变更后数据的版本信息。相应地,本申请实施例公开的装置的主动请求单元510,可以用于主动周期性地向所述缓存服务器侧的版本管理服务器发出获取变更后数据的版本信息的请求。所述接收版本单元520,可以用于接收所述版本管理服务器针对所述请求反馈的版本信息。
另外,本申请实施例还提供了一种应用于分布式缓存***的缓存服务器侧的实现分布式缓存的方法。例如,参见图6,为本申请实施例公开的应用于缓存服务器侧的实现分布式缓存的方法流程示意图。如图6所示,该方法可以包括:
S610、接收分布式缓存***的缓存客户端侧主动周期性地发出的获取变更后数据的版本信息的请求。
例如,分布式缓存***的缓存服务器侧可以从管理端界面或者其他任意消息来源接收数据变更的事件,将变更后的数据写入数据源,以及,为变更后的数据定义版本标识,保存变更后数据的版本信息。
S620、针对所述请求向所述缓存客户端侧反馈版本信息,以便所述缓存客户端侧根据版本信息,从数据源中获取变更后数据,以及,将所获取的变更后数据缓存到所述缓存客户端侧本地。
在一些可能的实现方式中,变更后数据的版本信息可以为变更后数据的最新版本标识。
在另一些可能的实现方式中,变更后数据的版本信息可以为变更后数据的最新版本标识与所述缓存客户端自身已缓存数据的当前版本标识的比较结果所确定的变更版本范围。在该实现方式中,缓存服务器侧可以记录各个缓存客户端已缓存数据的当前版本标识,在为变更后的数据定义最新版本标识之后,可以将该最新版本标识分别与各个缓存客户端自身已缓存数据的当前版本标识进行比较,对应得到各个缓存客户端的变更版本范围。
由于本申请实施例的缓存服务器侧可以接收到缓存客户端侧主动周期性地发出的获取变更后数据的版本信息的请求,因此,只需针对该请求反馈版本信息,缓存客户端侧即可根据版本信息从数据源中获取变更后数据,并进行缓存刷新,从而无需等待缓存服务器侧逐一通知各个缓存客户端,可以避免缓存服务器侧发送大量通知导致的耗时问题,使缓存客户端的缓存数据得以及时更新。
在一些可能的实施方式中,为了不影响缓存服务器侧对数据源的读/写速度,本申请实施例将对数据源的读/写以及对缓存客户端侧请求的响应分别部署在两个不同的服务器上。如图4所示,所述分布式缓存***的缓存服务器侧可以包括缓存中心服务器1011以及版本管理服务器1012。该实现分布式缓存的方法可以应用于版本管理服务器1012。其中,所述缓存中心服务器1011,可以用于将变更后的数据写入所述数据源,以及,主动周期性地向所述版本管理服务器发送变更后数据的最新版本标识。例如,可以在缓存中心服务器1011处设置服务器心跳触发模块105,缓存中心服务器1011可以将变更后数据的最新版本标识提交给服务器心跳触发模块105,该服务器心跳触发模块105与版本管理服务器1012建立连接,以心跳的方式主动周期性地向版本管理服务器1012发送该最新版本标识。相应地,所述版本管理服务器1012还可以接收所述缓存中心服务器1011主动周期性地发送的变更后数据的最新版本标识,根据所接收的最新版本标识保存所述变更后数据的版本信息。
由于该实施方式的缓存中心服务器不需要处理缓存客户端获取版本信息的请求,由专门的版本管理服务器来接收以及处理缓存客户端获取版本信息的请求,因此,版本管理服务器可以分担缓存中心服务器的压力,不影响缓存中心服务器对数据源的读写速度,缓存客户端的请求也可以及时得到响应,提高了分布式缓存***的稳定性。
与上述应用于分布式缓存***的缓存服务器侧的实现分布式缓存的方法相对应的,本申请实施例还提供了一种实现分布式缓存的装置,配置于分布式缓存***的缓存服务器侧。
例如,参见图7,为本申请实施例公开的配置于缓存服务器侧的实现分布式缓存的装置结构示意图。如图7所示,该装置可以包括:
接收请求单元710,可以用于接收分布式缓存***的缓存客户端侧主动周期性地发出的获取变更后数据的版本信息的请求。版本反馈单元720,可以用于针对所述请求向所述缓存客户端侧反馈版本信息,以便所述缓存客户端侧根据版本信息,从数据源中获取变更后数据,以及,将所获取的变更后数据缓存到所述缓存客户端侧本地。
在一些可能的实施方式中,为了不影响缓存服务器侧对数据源的读/写速度,本申请实施例将对数据源的读/写以及对缓存客户端侧请求的响应分别部署在两个不同的服务器上。如图4所示,所述分布式缓存***的缓存服务器侧可以包括缓存中心服务器1011以及版本管理服务器1012。该实现分布式缓存的装置可以配置于版本管理服务器1012。其中,所缓存中心服务器1011,可以用于将变更后的数据写入所述数据源,以及,主动周期性地向所述版本管理服务器发送变更后数据的最新版本标识,所述配置于版本管理服务器1012的装置还可以包括版本保存单元730,可以用于接收所述缓存中心服务器主动周期性地发送的变更后数据的最新版本标识,根据所接收的最新版本标识保存所述变更后数据的版本信息。
该实施方式中的版本管理服务器可以分担缓存中心服务器的压力,不影响缓存中心服务器对数据源的读写速度,缓存客户端的请求也可以及时得到响应,提高了分布式缓存***的稳定性。
与上述实现分布式缓存的方法相对应的,本申请实施例还提供了一种分布式缓存***。例如,参见图1,为本申请实施例公开的分布式缓存***的结构示意图。如图1所示,该***可以包括:缓存客户端侧102,可以用于主动周期性地向分布式缓存***的缓存服务器侧发出获取变更后数据的版本信息的请求,接收所述缓存服务器侧针对所述请求反馈的版本信息,根据所述版本信息,从数据源中获取所述变更后数据,将所获取的变更后数据缓存到本地。缓存服务器侧101,可以用于接收分布式缓存***的缓存客户端侧主动周期性地发出的获取变更后数据的版本信息的请求,针对所述请求向所述缓存客户端反馈版本信息。
其中,缓存客户端侧102可以包括若干个缓存客户端1021。缓存客户端1021可以是部署在寄主服务器中的功能组件,用于提供数据缓存记录功能。在一个分布式缓存***中,可以包括多个寄主服务器,一个寄主服务器上可以部署一个或多个缓存客户端。
在一些可能的实施方式中,为了不影响缓存服务器侧对数据源的读/写速度,如图4所示,本申请实施例所述缓存服务器侧101可以包括缓存中心服务器1011以及版本管理服务器1012。
其中,所述缓存中心服务器1011,具体可以用于将变更后的数据写入所述数据源,以及,主动周期性地向版本管理服务器发送变更后数据的最新版本标识。
其中,所述版本管理服务器1012,具体可以用于接收所述缓存中心服务器主动周期性地发送的变更后数据的最新版本标识,根据所接收的最新版本标识保存所述变更后数据的版本信息;以及,接收分布式缓存***的缓存客户端侧主动周期性地发出的获取变更后数据的版本信息的请求,针对所述请求向所述缓存客户端反馈版本信息。
在该实施方式中,版本管理服务器可以分担缓存中心服务器的压力,不影响缓存中心服务器对数据源的读写速度,缓存客户端的请求也可以及时得到响应,提高了分布式缓存***的稳定性。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本发明时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于***实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本发明可用于众多通用或专用的计算***环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器***、基于微处理器的***、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何***或设备的分布式计算环境等等。
本发明可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本发明,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (15)
1.一种实现分布式缓存的方法,其特征在于,应用于分布式缓存***的缓存客户端侧,所述方法包括:
主动周期性地向分布式缓存***的缓存服务器侧发出获取变更后数据的版本信息的请求;
接收所述缓存服务器侧针对所述请求反馈的版本信息;
根据所述版本信息,从数据源中获取所述变更后数据;
将所获取的变更后数据缓存到所述缓存客户端侧本地。
2.根据权利要求1所述的方法,其特征在于,所述变更后数据的版本信息为变更后数据的最新版本标识;
所述根据版本信息,从数据源中获取变更后数据包括:将所获取的最新版本标识与所述缓存客户端侧自身已缓存数据的当前版本标识进行比较以确定变更版本范围,从数据源中获取所述变更版本范围对应的数据。
3.根据权利要求1或2所述的方法,其特征在于,所述缓存客户端侧设置有客户端心跳触发模块,通过所述客户端心跳触发模块以心跳的方式主动周期性地向分布式缓存***的缓存服务器侧发出获取变更后数据的版本信息的请求。
4.根据权利要求1或2所述的方法,其特征在于,所述主动周期性地向分布式缓存***的缓存服务器侧发出获取变更后数据的版本信息的请求包括:主动周期性地向所述缓存服务器侧的版本管理服务器发出获取变更后数据的版本信息的请求;
所述接收缓存服务器端针对所述请求反馈的版本信息包括:接收所述版本管理服务器针对所述请求反馈的版本信息;
所述缓存服务器侧包括:缓存中心服务器以及版本管理服务器;其中,所述缓存中心服务器,用于将变更后的数据写入所述数据源,以及,主动周期性地向版本管理服务器发送变更后数据的最新版本标识;所述版本管理服务器,用于接收所述缓存中心服务器主动周期性地发送的变更后数据的最新版本标识,根据所接收的最新版本标识保存所述变更后数据的版本信息。
5.一种实现分布式缓存的装置,其特征在于,配置于分布式缓存***的缓存客户端侧,所述装置包括:
主动请求单元,用于主动周期性地向分布式缓存***的缓存服务器侧发出获取变更后数据的版本信息的请求;
接收版本单元,用于接收所述缓存服务器侧针对所述请求反馈的版本信息;
获取数据单元,用于根据所述版本信息,从数据源中获取所述变更后数据;
缓存更新单元,用于将所获取的变更后数据缓存到所述缓存客户端侧本地。
6.根据权利要求5所述的装置,其特征在于,所述变更后数据的版本信息为变更后数据的最新版本标识;
所述获取数据单元,用于将所获取的最新版本标识与所述缓存客户端侧自身已缓存数据的当前版本标识进行比较以确定变更版本范围,从数据源中获取所述变更版本范围对应的数据。
7.根据权利要求5或6所述的装置,其特征在于,所述缓存客户端侧设置有客户端心跳触发模块;
所述主动请求单元,用于通过所述客户端心跳触发模块以心跳的方式主动周期性地向分布式缓存***的缓存服务器侧发出获取变更后数据的版本信息的请求。
8.根据权利要求5或6所述的装置,其特征在于,所述主动请求单元,用于主动周期性地向所述缓存服务器侧的版本管理服务器发出获取变更后数据的版本信息的请求;
所述接收版本单元,用于接收所述版本管理服务器针对所述请求反馈的版本信息;
其中,所述缓存服务器侧包括:缓存中心服务器以及版本管理服务器;其中,所述缓存中心服务器,用于将变更后的数据写入所述数据源,以及,主动周期性地向版本管理服务器发送变更后数据的最新版本标识;所述版本管理服务器,用于接收所述缓存中心服务器主动周期性地发送的变更后数据的最新版本标识,根据所接收的最新版本标识保存所述变更后数据的版本信息。
9.一种实现分布式缓存的方法,应用于分布式缓存***的缓存服务器侧,其特征在于,包括:
接收分布式缓存***的缓存客户端侧主动周期性地发出的获取变更后数据的版本信息的请求;
针对所述请求向所述缓存客户端侧反馈版本信息,以便所述缓存客户端侧根据版本信息,从数据源中获取变更后数据,以及,将所获取的变更后数据缓存到所述缓存客户端侧本地。
10.根据权利要求9所述的方法,其特征在于,所述变更后数据的版本信息为变更后数据的最新版本标识。
11.根据权利要求9或10所述的方法,其特征在于,所述方法应用于所述缓存服务器侧的版本管理服务器;
其中,所述缓存服务器侧还包括:缓存中心服务器,用于将变更后的数据写入所述数据源,以及,主动周期性地向所述版本管理服务器发送变更后数据的最新版本标识;
所述版本管理服务器还接收所述缓存中心服务器主动周期性地发送的变更后数据的最新版本标识,根据所接收的最新版本标识保存所述变更后数据的版本信息。
12.一种实现分布式缓存的装置,配置于分布式缓存***的缓存服务器侧,其特征在于,包括:
接收请求单元,用于接收分布式缓存***的缓存客户端侧主动周期性地发出的获取变更后数据的版本信息的请求;
版本反馈单元,用于针对所述请求向所述缓存客户端侧反馈版本信息,以便所述缓存客户端侧根据版本信息,从数据源中获取变更后数据,以及,将所获取的变更后数据缓存到所述缓存客户端侧本地。
13.根据权利要求12所述的装置,其特征在于,所述装置配置于所述缓存服务器侧的版本管理服务器;
其中,所述缓存服务器侧还包括:缓存中心服务器,用于将变更后的数据写入所述数据源,以及,主动周期性地向所述版本管理服务器发送变更后数据的最新版本标识;
所述装置还包括:版本保存单元,用于接收所述缓存中心服务器主动周期性地发送的变更后数据的最新版本标识,根据所接收的最新版本标识保存所述变更后数据的版本信息。
14.一种分布式缓存***,其特征在于,包括:
缓存客户端侧,用于主动周期性地向分布式缓存***的缓存服务器侧发出获取变更后数据的版本信息的请求,接收所述缓存服务器侧针对所述请求反馈的版本信息,根据所述版本信息,从数据源中获取所述变更后数据,将所获取的变更后数据缓存到本地;
缓存服务器侧,用于接收分布式缓存***的缓存客户端侧主动周期性地发出的获取变更后数据的版本信息的请求,针对所述请求向所述缓存客户端反馈版本信息。
15.根据权利要求14所述的***,其特征在于,其中,所述缓存服务器侧包括缓存中心服务器以及版本管理服务器;
其中,所述缓存中心服务器,具体用于将变更后的数据写入所述数据源,以及,主动周期性地向版本管理服务器发送变更后数据的最新版本标识;
其中,所述版本管理服务器,具体用于接收所述缓存中心服务器主动周期性地发送的变更后数据的最新版本标识,根据所接收的最新版本标识保存所述变更后数据的版本信息;以及,接收分布式缓存***的缓存客户端侧主动周期性地发出的获取变更后数据的版本信息的请求,针对所述请求向所述缓存客户端反馈版本信息。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410331467.4A CN105245560B (zh) | 2014-07-11 | 2014-07-11 | 一种实现分布式缓存的方法、装置及*** |
CN201910846547.6A CN110505310B (zh) | 2014-07-11 | 2014-07-11 | 一种实现分布式缓存的方法、装置及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410331467.4A CN105245560B (zh) | 2014-07-11 | 2014-07-11 | 一种实现分布式缓存的方法、装置及*** |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910846547.6A Division CN110505310B (zh) | 2014-07-11 | 2014-07-11 | 一种实现分布式缓存的方法、装置及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105245560A true CN105245560A (zh) | 2016-01-13 |
CN105245560B CN105245560B (zh) | 2019-11-08 |
Family
ID=55043060
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410331467.4A Active CN105245560B (zh) | 2014-07-11 | 2014-07-11 | 一种实现分布式缓存的方法、装置及*** |
CN201910846547.6A Active CN110505310B (zh) | 2014-07-11 | 2014-07-11 | 一种实现分布式缓存的方法、装置及*** |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910846547.6A Active CN110505310B (zh) | 2014-07-11 | 2014-07-11 | 一种实现分布式缓存的方法、装置及*** |
Country Status (1)
Country | Link |
---|---|
CN (2) | CN105245560B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105915612A (zh) * | 2016-04-19 | 2016-08-31 | 北京金山安全软件有限公司 | 推送消息获取、消息推送方法及装置 |
CN106921648A (zh) * | 2016-11-15 | 2017-07-04 | 阿里巴巴集团控股有限公司 | 数据存储方法、应用服务器及远程存储服务器 |
CN108650318A (zh) * | 2018-05-10 | 2018-10-12 | 北京奇艺世纪科技有限公司 | 一种数据获取方法及装置 |
CN109408751A (zh) * | 2018-09-27 | 2019-03-01 | 腾讯科技(成都)有限公司 | 一种数据处理方法、终端、服务器及存储介质 |
CN110941568A (zh) * | 2019-10-23 | 2020-03-31 | 支付宝(杭州)信息技术有限公司 | 缓存更新方法、装置、***、电子设备及介质 |
CN112668027A (zh) * | 2021-01-04 | 2021-04-16 | 中车青岛四方车辆研究所有限公司 | 用于分布式***的数据下装方法、tias***数据下装方法 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112016466B (zh) * | 2020-08-28 | 2024-05-28 | 中移(杭州)信息技术有限公司 | 人脸识别方法、***、电子设备和计算机存储介质 |
CN112350856B (zh) * | 2020-10-27 | 2023-04-07 | 中国联合网络通信集团有限公司 | 分布式服务签退方法及设备 |
CN112433960B (zh) * | 2020-12-08 | 2022-06-21 | 四川长虹电器股份有限公司 | 一种异步基于版本控制的刷新级联缓存的方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101127783A (zh) * | 2007-09-28 | 2008-02-20 | 北京金山软件有限公司 | 一种网站缓存方法和一种网站缓存的装置 |
CN101146127A (zh) * | 2007-10-30 | 2008-03-19 | 金蝶软件(中国)有限公司 | 一种分布式***中客户端缓存更新的方法和装置 |
CN101257485A (zh) * | 2007-03-02 | 2008-09-03 | 华为技术有限公司 | web应用***及方法 |
CN103152367A (zh) * | 2011-12-06 | 2013-06-12 | 盛乐信息技术(上海)有限公司 | 一种缓存的动态维护更新方法及*** |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2507235B2 (ja) * | 1994-06-24 | 1996-06-12 | インターナショナル・ビジネス・マシーンズ・コーポレイション | クライアント・サ―バ・コンピュ―タ・システム、及びそのクライアント・コンピュ―タ、サ―バ・コンピュ―タ、並びにオブジェクト更新方法 |
US6996584B2 (en) * | 2002-05-14 | 2006-02-07 | Pervasive Software, Inc. | System and method of maintaining functional client side data cache coherence |
TW200535697A (en) * | 2004-04-30 | 2005-11-01 | Hon Hai Prec Ind Co Ltd | System and method for automatic updating program |
US7870108B2 (en) * | 2007-09-25 | 2011-01-11 | Amadeus S.A.S. | Method and apparatus for version management of a data entity |
CN101576828B (zh) * | 2009-06-01 | 2014-08-13 | 中兴通讯股份有限公司 | 软件版本升级方法及装置、服务器 |
US20100325363A1 (en) * | 2009-06-22 | 2010-12-23 | Microsoft Corporation | Hierarchical object caching based on object version |
-
2014
- 2014-07-11 CN CN201410331467.4A patent/CN105245560B/zh active Active
- 2014-07-11 CN CN201910846547.6A patent/CN110505310B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101257485A (zh) * | 2007-03-02 | 2008-09-03 | 华为技术有限公司 | web应用***及方法 |
CN101127783A (zh) * | 2007-09-28 | 2008-02-20 | 北京金山软件有限公司 | 一种网站缓存方法和一种网站缓存的装置 |
CN101146127A (zh) * | 2007-10-30 | 2008-03-19 | 金蝶软件(中国)有限公司 | 一种分布式***中客户端缓存更新的方法和装置 |
CN103152367A (zh) * | 2011-12-06 | 2013-06-12 | 盛乐信息技术(上海)有限公司 | 一种缓存的动态维护更新方法及*** |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105915612A (zh) * | 2016-04-19 | 2016-08-31 | 北京金山安全软件有限公司 | 推送消息获取、消息推送方法及装置 |
WO2017181709A1 (zh) * | 2016-04-19 | 2017-10-26 | 北京金山安全软件有限公司 | 推送消息获取、消息推送方法及装置 |
CN106921648A (zh) * | 2016-11-15 | 2017-07-04 | 阿里巴巴集团控股有限公司 | 数据存储方法、应用服务器及远程存储服务器 |
CN108650318A (zh) * | 2018-05-10 | 2018-10-12 | 北京奇艺世纪科技有限公司 | 一种数据获取方法及装置 |
CN108650318B (zh) * | 2018-05-10 | 2021-04-30 | 北京奇艺世纪科技有限公司 | 一种数据获取方法及装置 |
CN109408751A (zh) * | 2018-09-27 | 2019-03-01 | 腾讯科技(成都)有限公司 | 一种数据处理方法、终端、服务器及存储介质 |
CN109408751B (zh) * | 2018-09-27 | 2022-08-30 | 腾讯科技(成都)有限公司 | 一种数据处理方法、终端、服务器及存储介质 |
CN110941568A (zh) * | 2019-10-23 | 2020-03-31 | 支付宝(杭州)信息技术有限公司 | 缓存更新方法、装置、***、电子设备及介质 |
CN112668027A (zh) * | 2021-01-04 | 2021-04-16 | 中车青岛四方车辆研究所有限公司 | 用于分布式***的数据下装方法、tias***数据下装方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110505310A (zh) | 2019-11-26 |
CN110505310B (zh) | 2022-04-15 |
CN105245560B (zh) | 2019-11-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105245560A (zh) | 一种实现分布式缓存的方法、装置及*** | |
CN102333029B (zh) | 一种服务器集群***中的路由方法 | |
US7890622B2 (en) | Real-time notification of device events | |
CN102291416A (zh) | 一种客户端与服务器端双向同步的方法及*** | |
CN102331986A (zh) | 一种数据库缓存管理方法及一种数据库服务器 | |
CN106161145A (zh) | 一种服务器***运行状态信息的监控方法和*** | |
CN101860493A (zh) | 为客户端分配应用服务器地址的方法、服务器及*** | |
CN103780636A (zh) | 一种缓存数据处理方法和*** | |
CN106406925A (zh) | 用于支持在线升级的设备和方法 | |
CN104639347A (zh) | 一种多集群监控方法、装置及*** | |
US20160105503A1 (en) | Data Synchronization Methods and Systems | |
CN104331492A (zh) | 一种缓存多实例数据的方法及装置 | |
US10606804B2 (en) | Computerized systems and methods for distributed file collection and processing | |
CN104572822A (zh) | 文本展现方法及装置 | |
CN103414693A (zh) | 打点方法及打点装置 | |
CN103905441A (zh) | 数据获取方法及装置 | |
US10664335B2 (en) | System and method for maintaining the health of a machine | |
WO2019041670A1 (zh) | 一种降低功能页面请求次数的方法、存储介质、设备及*** | |
CN103516734A (zh) | 数据处理方法、设备和*** | |
CN113434312A (zh) | 数据血缘关系处理方法及装置 | |
CN109271367A (zh) | 分布式文件***多节点快照回滚方法及*** | |
CN103580918A (zh) | 一种配置数据处理方法及装置 | |
CN103297477B (zh) | 一种数据采集上报***及数据处理方法和代理服务器 | |
CN103412898A (zh) | 一种网页优化的方法及装置 | |
US8725966B2 (en) | Generation and update of storage groups constructed from storage devices distributed in storage subsystems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20191213 Address after: P.O. Box 31119, grand exhibition hall, hibiscus street, 802 West Bay Road, Grand Cayman, British Cayman Islands Patentee after: Innovative advanced technology Co., Ltd Address before: Cayman Islands Grand Cayman capital building, a four storey No. 847 mailbox Patentee before: Alibaba Group Holding Co., Ltd. |
|
TR01 | Transfer of patent right |