CN110505310A - 一种实现分布式缓存的方法、装置及系统 - Google Patents

一种实现分布式缓存的方法、装置及系统 Download PDF

Info

Publication number
CN110505310A
CN110505310A CN201910846547.6A CN201910846547A CN110505310A CN 110505310 A CN110505310 A CN 110505310A CN 201910846547 A CN201910846547 A CN 201910846547A CN 110505310 A CN110505310 A CN 110505310A
Authority
CN
China
Prior art keywords
cache
data
change
version
server
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
Application number
CN201910846547.6A
Other languages
English (en)
Other versions
CN110505310B (zh
Inventor
徐洪鑫
韩旻
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Advanced New Technologies Co Ltd
Advantageous New Technologies Co Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201910846547.6A priority Critical patent/CN110505310B/zh
Publication of CN110505310A publication Critical patent/CN110505310A/zh
Application granted granted Critical
Publication of CN110505310B publication Critical patent/CN110505310B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本说明书公开了一种实现分布式缓存的方法、装置及系统。例如,本说明书一些实施例中公开的应用于分布式缓存系统的缓存客户端的方法可以包括:主动周期性地向分布式缓存系统的缓存服务器发出获取变更后数据的版本信息的请求;接收缓存服务器针对请求反馈的版本信息;将版本信息与缓存客户端自身已缓存数据的当前版本标识进行比较以确定变更版本范围;根据变更版本范围,从数据源中获取变更后数据;将所获取的变更后数据缓存到缓存客户端本地。

Description

一种实现分布式缓存的方法、装置及系统
本案为分案申请,母案申请日为2014年7月11日,母案的申请号为201410331467.4,母案的名称为“一种实现分布式缓存的方法、装置及系统”。
技术领域
本发明涉及分布式缓存领域,尤其涉及一种实现分布式缓存的方法、装置及系统。
背景技术
分布式缓存,是指将数据存储到分布式缓存系统部署的各个缓存客户端本地内存的缓存方法。分布式缓存系统通常由缓存服务器端和各个缓存客户端组成。
为了实现数据同步,现有的分布式缓存系统通常由缓存服务器端将变更后的数据写入数据源,再由缓存服务器端通知各个分布式缓存客户端将变更后的数据刷新到客户端本地。为了使缓存服务器端可以通知到缓存客户端,通常需要在缓存服务器端的记录表中记录各个缓存客户端的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.根据权利要求1或2所述的方法,所述缓存客户端内设置有定时器事件,所述缓存客户端通过自身的定时器事件分别主动周期性地向分布式缓存系统的缓存服务器发出获取变更后数据的版本信息的请求。
6.根据权利要求3所述的方法,将所获取的变更后数据缓存到所述缓存客户端本地,包括:通过所述客户端心跳触发模块触发所述缓存客户端进行缓存刷新操作,以将所获取的变更后数据缓存到所述缓存客户端本地。
7.一种实现分布式缓存的装置,配置于分布式缓存系统的缓存客户端,所述装置包括:
主动请求单元,用于主动周期性地向分布式缓存系统的缓存服务器发出获取变更后数据的版本信息的请求;
接收版本单元,用于接收所述缓存服务器针对所述请求反馈的版本信息;
确定范围单元,用于将所述版本信息与所述缓存客户端自身已缓存数据的当前版本标识进行比较以确定变更版本范围;
获取数据单元,用于根据所述变更版本范围,从数据源中获取所述变更后数据;
缓存更新单元,用于将所获取的变更后数据缓存到所述缓存客户端本地。
8.一种实现分布式缓存的方法,应用于分布式缓存系统的缓存服务器,包括:
接收分布式缓存系统的缓存客户端主动周期性地发出的获取变更后数据的版本信息的请求;
针对所述请求向所述缓存客户端反馈版本信息,以便所述缓存客户端将所述版本信息与所述缓存客户端自身已缓存数据的当前版本标识进行比较以确定变更版本范围,根据所述变更版本范围,从数据源中获取变更后数据,以及,将所获取的变更后数据缓存到所述缓存客户端本地。
9.根据权利要求8所述的方法,针对所述请求向所述缓存客户端反馈的版本信息包括变更后数据的最新版本标识。
10.一种实现分布式缓存的装置,配置于分布式缓存系统的缓存服务器,包括:
接收请求单元,用于接收分布式缓存系统的缓存客户端主动周期性地发出的获取变更后数据的版本信息的请求;
版本反馈单元,用于针对所述请求向所述缓存客户端反馈版本信息,以便所述缓存客户端将所述版本信息与所述缓存客户端自身已缓存数据的当前版本标识进行比较以确定变更版本范围,根据所述变更版本范围,从数据源中获取变更后数据,以及,将所获取的变更后数据缓存到所述缓存客户端本地。
11.一种分布式缓存系统,包括:
缓存客户端,用于主动周期性地向分布式缓存系统的缓存服务器发出获取变更后数据的版本信息的请求,接收所述缓存服务器针对所述请求反馈的版本信息,将所述版本信息与所述缓存客户端自身已缓存数据的当前版本标识进行比较以确定变更版本范围,根据所述变更版本范围,从数据源中获取所述变更后数据,将所获取的变更后数据缓存到本地;
缓存服务器,用于接收分布式缓存系统的缓存客户端主动周期性地发出的获取变更后数据的版本信息的请求,针对所述请求向所述缓存客户端反馈版本信息。
12.一种缓存服务器,所述缓存服务器包括缓存中心服务器以及版本管理服务器;
其中,所述缓存中心服务器,用于将变更后的数据写入数据源,以及,主动周期性地向所述版本管理服务器发送变更后数据的最新版本标识;
其中,所述版本管理服务器,用于接收所述缓存中心服务器主动周期性地发送的变更后数据的最新版本标识,根据所接收的最新版本标识保存所述变更后数据的版本信息;以及,接收分布式缓存系统的缓存客户端主动周期性地发出的获取变更后数据的版本信息的请求,针对所述请求向所述缓存客户端反馈版本信息,以使得所述缓存客户端将所述版本信息与所述缓存客户端自身已缓存数据的当前版本标识进行比较以确定变更版本范围,根据所述变更版本范围,从数据源中获取变更后数据,以及,将所获取的变更后数据缓存到所述缓存客户端本地。
13.根据权利要求12所述的缓存服务器,所述缓存服务器还包括:服务器心跳触发模块;
其中,所述缓存中心服务器将变更后数据的最新版本标识提交给所述服务器心跳触发模块,所述服务器心跳触发模块与所述版本管理服务器建立连接,并以心跳的方式主动周期性地向所述版本管理服务器发送所述变更后数据的最新版本标识。
14.一种缓存服务器,所述缓存服务器包括缓存中心服务器以及版本管理服务器;
其中,所述缓存中心服务器,用于将变更后的数据写入数据源,以及,主动周期性地向所述版本管理服务器发送变更后数据的最新版本标识;
其中,所述版本管理服务器,用于接收所述缓存中心服务器主动周期性地发送的变更后数据的最新版本标识,根据所接收的最新版本标识保存所述变更后数据的版本信息,其中,所述变更后数据的版本信息包括变更后数据的最新版本标识与所述缓存客户端自身已缓存数据的当前版本标识的比较结果所确定的变更版本范围;以及,接收分布式缓存系统的缓存客户端主动周期性地发出的获取变更后数据的版本信息的请求,针对所述请求向所述缓存客户端反馈版本信息,以使得所述缓存客户端根据所述版本信息,从数据源中获取变更后数据,以及,将所获取的变更后数据缓存到所述缓存客户端本地。
15.根据权利要求14所述的缓存服务器,所述缓存服务器还包括:服务器心跳触发模块;
其中,所述缓存中心服务器将变更后数据的最新版本标识提交给所述服务器心跳触发模块,所述服务器心跳触发模块与所述版本管理服务器建立连接,并以心跳的方式主动周期性地向所述版本管理服务器发送所述变更后数据的最新版本标识。
CN201910846547.6A 2014-07-11 2014-07-11 一种实现分布式缓存的方法、装置及系统 Active CN110505310B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910846547.6A CN110505310B (zh) 2014-07-11 2014-07-11 一种实现分布式缓存的方法、装置及系统

Applications Claiming Priority (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 一种实现分布式缓存的方法、装置及系统

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201410331467.4A Division CN105245560B (zh) 2014-07-11 2014-07-11 一种实现分布式缓存的方法、装置及系统

Publications (2)

Publication Number Publication Date
CN110505310A true CN110505310A (zh) 2019-11-26
CN110505310B CN110505310B (zh) 2022-04-15

Family

ID=55043060

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201910846547.6A Active CN110505310B (zh) 2014-07-11 2014-07-11 一种实现分布式缓存的方法、装置及系统
CN201410331467.4A Active CN105245560B (zh) 2014-07-11 2014-07-11 一种实现分布式缓存的方法、装置及系统

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN201410331467.4A Active CN105245560B (zh) 2014-07-11 2014-07-11 一种实现分布式缓存的方法、装置及系统

Country Status (1)

Country Link
CN (2) CN110505310B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112016466A (zh) * 2020-08-28 2020-12-01 中移(杭州)信息技术有限公司 人脸识别方法、系统、电子设备和计算机存储介质
CN112350856A (zh) * 2020-10-27 2021-02-09 中国联合网络通信集团有限公司 分布式服务签退方法及设备
CN112433960A (zh) * 2020-12-08 2021-03-02 四川长虹电器股份有限公司 一种异步基于版本控制的刷新级联缓存的方法

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105915612A (zh) * 2016-04-19 2016-08-31 北京金山安全软件有限公司 推送消息获取、消息推送方法及装置
CN106921648A (zh) * 2016-11-15 2017-07-04 阿里巴巴集团控股有限公司 数据存储方法、应用服务器及远程存储服务器
CN108650318B (zh) * 2018-05-10 2021-04-30 北京奇艺世纪科技有限公司 一种数据获取方法及装置
CN109408751B (zh) * 2018-09-27 2022-08-30 腾讯科技(成都)有限公司 一种数据处理方法、终端、服务器及存储介质
CN110941568B (zh) * 2019-10-23 2022-03-01 支付宝(杭州)信息技术有限公司 缓存更新方法、装置、系统、电子设备及介质
CN112668027A (zh) * 2021-01-04 2021-04-16 中车青岛四方车辆研究所有限公司 用于分布式系统的数据下装方法、tias系统数据下装方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5734898A (en) * 1994-06-24 1998-03-31 International Business Machines Corporation Client-server computer system and method for updating the client, server, and objects
US20030217081A1 (en) * 2002-05-14 2003-11-20 Ken White System and method of maintaining functional client side data cache coherence
US20050246702A1 (en) * 2004-04-30 2005-11-03 Hon Hai Precision Industry Co., Ltd. System and method for automatically updating versions of software programs in client computers
CN101576828A (zh) * 2009-06-01 2009-11-11 中兴通讯股份有限公司 软件版本升级方法及装置、服务器
CN101809571A (zh) * 2007-09-25 2010-08-18 阿玛得斯两合公司 用于数据实体的版本管理的方法和装置
US20100325363A1 (en) * 2009-06-22 2010-12-23 Microsoft Corporation Hierarchical object caching based on object version

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101257485A (zh) * 2007-03-02 2008-09-03 华为技术有限公司 web应用系统及方法
CN100591078C (zh) * 2007-09-28 2010-02-17 北京金山软件有限公司 一种网站缓存方法和一种网站缓存的装置
CN101146127B (zh) * 2007-10-30 2010-06-09 金蝶软件(中国)有限公司 一种分布式系统中客户端缓存更新的方法和装置
CN103152367A (zh) * 2011-12-06 2013-06-12 盛乐信息技术(上海)有限公司 一种缓存的动态维护更新方法及系统

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5734898A (en) * 1994-06-24 1998-03-31 International Business Machines Corporation Client-server computer system and method for updating the client, server, and objects
US20030217081A1 (en) * 2002-05-14 2003-11-20 Ken White System and method of maintaining functional client side data cache coherence
US20050246702A1 (en) * 2004-04-30 2005-11-03 Hon Hai Precision Industry Co., Ltd. System and method for automatically updating versions of software programs in client computers
CN101809571A (zh) * 2007-09-25 2010-08-18 阿玛得斯两合公司 用于数据实体的版本管理的方法和装置
CN101576828A (zh) * 2009-06-01 2009-11-11 中兴通讯股份有限公司 软件版本升级方法及装置、服务器
US20100325363A1 (en) * 2009-06-22 2010-12-23 Microsoft Corporation Hierarchical object caching based on object version

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112016466A (zh) * 2020-08-28 2020-12-01 中移(杭州)信息技术有限公司 人脸识别方法、系统、电子设备和计算机存储介质
CN112016466B (zh) * 2020-08-28 2024-05-28 中移(杭州)信息技术有限公司 人脸识别方法、系统、电子设备和计算机存储介质
CN112350856A (zh) * 2020-10-27 2021-02-09 中国联合网络通信集团有限公司 分布式服务签退方法及设备
CN112433960A (zh) * 2020-12-08 2021-03-02 四川长虹电器股份有限公司 一种异步基于版本控制的刷新级联缓存的方法
CN112433960B (zh) * 2020-12-08 2022-06-21 四川长虹电器股份有限公司 一种异步基于版本控制的刷新级联缓存的方法

Also Published As

Publication number Publication date
CN110505310B (zh) 2022-04-15
CN105245560A (zh) 2016-01-13
CN105245560B (zh) 2019-11-08

Similar Documents

Publication Publication Date Title
CN105245560B (zh) 一种实现分布式缓存的方法、装置及系统
CN105897946B (zh) 一种访问地址的获取方法及系统
CN103227839B (zh) 内容分发网络服务器区域自治的管理系统
CN102333029B (zh) 一种服务器集群系统中的路由方法
US8108623B2 (en) Poll based cache event notifications in a distributed cache
CN112565415B (zh) 一种基于云边协同的跨地域资源纳管系统和纳管方法
US7890622B2 (en) Real-time notification of device events
CN110308983A (zh) 资源负载均衡方法及系统、服务节点和客户端
CN107888666B (zh) 一种跨地域数据存储系统以及数据同步方法和装置
CN103856393A (zh) 基于数据库的分布式消息中间件系统及其运行方法
CN108712457A (zh) 基于Nginx反向代理的后端服务器动态负载调整方法及装置
US10069941B2 (en) Scalable event-based notifications
WO2017181890A1 (zh) 基于服务器集群的数据处理系统及方法
US8589479B2 (en) Distributed registry for device discovery using quorum consensus protocol
CN107404509A (zh) 分布式服务配置系统及信息管理方法
US20200329118A1 (en) Data transmission scheduling method and system
EP3742697A1 (en) Data transmission scheduling method and system
CN110213156A (zh) 一种跨中心群组即时通信方法和系统
CN104021088A (zh) 日志存储方法和装置
CN104601354B (zh) 一种业务日志存储方法、装置及系统
CN102480524B (zh) 一种网页爬虫协作方法
CN103338160A (zh) 基于缓存队列的轮询业务的优化系统及优化方法
CN109831502A (zh) 新型网站云虚拟主机架构
CN111382132A (zh) 医学影像数据云存储系统
CN103049559A (zh) 一种海量数据自动放置方法和装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20201012

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Applicant after: Innovative advanced technology Co.,Ltd.

Address before: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Applicant before: Advanced innovation technology Co.,Ltd.

Effective date of registration: 20201012

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Applicant after: Advanced innovation technology Co.,Ltd.

Address before: Greater Cayman, British Cayman Islands

Applicant before: Alibaba Group Holding Ltd.

GR01 Patent grant
GR01 Patent grant