一种数据同步方法和设备
技术领域
本申请涉及互联网信息处理技术以及计算机处理技术领域,尤其涉及一种数据同步方法和设备。
背景技术
随着计算机***向分布式***方向的扩展,在分布式***中的缓存技术称之为分布式缓存技术。EhCache(一个纯Java的进程内缓存框架)作为一种分布式缓存组件,被广泛应用在各种分布式***中。
EhCache应用一般部署在集群环境中。集群环境中的每一个节点维护各自的缓存数据,当某个节点对缓存数据进行更新,这些更新的数据无法在其它节点中共享,这不仅会降低节点运行的效率,而且会导致数据不同步的情况发生。因此,为了克服EhCache应用中各个节点数据不同步的问题,提出了通过第三方容器的方案,即借助第三方容器实现集群环境(或者分布式***)中不同的节点之间的本地缓存的数据同步。
然而,为了保证分布式***中数据的安全性,分布式***通常采用远程分布式缓存,借助开源分布式Key/value存储引擎,获取缓存服务器上的数据,以实现分布式***中不同维度服务器之间的远程缓存同步。但是,远程缓存在实际应用中存在一些问题:当待缓存数据量比较大时,远程缓存比较耗时,且占用大量的***资源,使得***资源消耗比较大,进而影响***的运行性能。
发明内容
有鉴于此,本申请实施例提供了一种数据同步方法和设备,用于解决现有技术中远程缓存技术存在的***资源消耗比较大的问题。
本申请实施例提供一种数据同步方法,应用于控制器中,包括:
接收缓存组件发送的清除指令,所述清除指令中包含待清除的缓存数据的属性值,所述缓存组件中存储的缓存数据与业务***的本地缓存中存储的缓存数据同步;
根据所述清除指令,向远程缓存服务器发送数据同步指令,所述数据同步指令用于指示所述远程缓存服务器从所述缓存组件中同步所述属性值对应的缓存数据。
本申请实施例还提供一种数据同步方法,应用于缓存组件中,所述缓存组件中存储的缓存数据与业务***的本地缓存中存储的缓存数据同步,包括:
接收所述业务***发送的清除指令,所述清除指令用于提示所述业务***启动本地缓存清除操作,所述清除指令中包含待清除的缓存数据的属性值;
将所述清除指令转发给控制设备,所述控制设备用于根据所述清除指令向远程缓存服务器发送数据同步指令,所述数据同步指令用于指示所述远程缓存服务器从所述缓存组件中同步所述属性值对应的缓存数据;
接收所述远程缓存服务器发送的数据同步请求,所述数据同步请求中包含所述属性值;
根据所述数据同步请求中包含的所述属性值,将所述属性值对应的缓存数据同步至所述远程缓存服务器。
本申请实施例还提供一种数据同步方法,应用于远程缓存服务器中,包括:
接收控制设备发送的数据同步指令,所述数据同步指令是所述控制设备在接收到清除指令时发送的,所述数据同步指令用于指示所述远程缓存服务器从缓存组件中同步属性值对应的缓存数据,所述清除指令由缓存组件发送的;
向所述缓存组件发送数据同步请求,所述数据同步请求中包含所述属性值;
接收所述缓存组件发送的所述属性值对应的缓存数据,并同步存储所述缓存数据。
本申请实施例还提供了一种数据同步设备,应用于控制器中,包括:
接收单元,接收缓存组件发送的清除指令,所述清除指令中包含待清除的缓存数据的属性值,所述缓存组件中存储的缓存数据与业务***的本地缓存中存储的缓存数据同步;
发送单元,根据所述清除指令,向远程缓存服务器发送数据同步指令,所述数据同步指令用于指示所述远程缓存服务器从所述缓存组件中同步所述属性值对应的缓存数据。
本申请实施例还提供了一种数据同步设备,应用于缓存组件中,所述缓存组件中存储的缓存数据与业务***的本地缓存中存储的缓存数据同步,包括:
接收单元,接收所述业务***发送的清除指令,所述清除指令用于提示所述业务***启动本地缓存清除操作,所述清除指令中包含待清除的缓存数据的属性值;
发送单元,将所述清除指令转发给控制设备,所述控制设备用于根据所述清除指令向远程缓存服务器发送数据同步指令,所述数据同步指令用于指示所述远程缓存服务器从所述缓存组件中同步所述属性值对应的缓存数据;
所述接收单元,接收所述远程缓存服务器发送的数据同步请求,所述数据同步请求中包含所述属性值;
同步单元,根据所述数据同步请求中包含的所述属性值,将所述属性值对应的缓存数据同步至所述远程缓存服务器。
本申请实施例还提供了一种数据同步设备,应用于远程缓存服务器中,包括:
接收单元,接收控制设备发送的数据同步指令,所述数据同步指令是所述控制设备在接收到清除指令时发送的,所述数据同步指令用于指示所述远程缓存服务器从缓存组件中同步属性值对应的缓存数据,所述清除指令由缓存组件发送的;
发送单元,向所述缓存组件发送数据同步请求,所述数据同步请求中包含所述属性值;
同步单元,接收所述缓存组件发送的所述属性值对应的缓存数据,并同步存储所述缓存数据。
本申请实施例采用的上述至少一个技术方案能够达到以下有益效果:
在本申请实施例中通过增加缓存组件和控制器,控制器在接收到缓存组件发送的清除指令时,向远程缓存服务器发送数据同步指令,所述清除指令中包含待清除的缓存数据的属性值,所述缓存组件中存储的缓存数据与业务***的本地缓存中存储的缓存数据同步,所述数据同步指令用于指示所述远程缓存服务器从所述缓存组件中同步所述属性值对应的缓存数据。这样由控制器控制远程缓存服务器的缓存同步功能,能够使得远程缓存服务器快速获取业务***的本地缓存中的缓存数据,保持缓存数据更新最快,提升远程缓存的缓存效率,有效地解决了现有技术中远程缓存服务消耗***资源大的问题,大大提升了***的整体性能。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请实施例提供的一种数据同步方法的流程示意图;
图2为本申请实施例提供的一种数据同步方法的流程示意图;
图3为本申请实施例提供的一种数据同步方法的流程示意图;
图4为本申请实施例提供的一种数据同步方法的流程示意图;
图5为本申请实施例提供的一种数据同步设备的结构示意图;
图6为本申请实施例提供的一种数据同步设备的结构示意图;
图7为本申请实施例提供的一种数据同步设备的结构示意图;
图8为本申请实施例提供的一种数据同步***的结构示意图。
具体实施方式
为了实现本申请的目的,本申请实施例提供了一种数据同步方法和设备,在本申请实施例中通过增加缓存组件和控制器,控制器在接收到缓存组件发送的清除指令时,向远程缓存服务器发送数据同步指令,所述清除指令中包含待清除的缓存数据的属性值,所述缓存组件中存储的缓存数据与业务***的本地缓存中存储的缓存数据同步,所述数据同步指令用于指示所述远程缓存服务器从所述缓存组件中同步所述属性值对应的缓存数据。这样由控制器控制远程缓存服务器的缓存同步功能,能够使得远程缓存服务器快速获取业务***的本地缓存中的缓存数据,保证缓存数据更新的最快,提升远程缓存的缓存效率,有效地解决了现有技术中远程缓存服务消耗***资源大的问题,大大提升了***的整体性能。
需要说明的是,本申请实施例中所记载的缓存组件不同于现有技术中的缓存组件,能够实现与业务***的本地缓存中的缓存数据的同步,以及实现与远程缓存服务器的远程缓存中的缓存数据的同步。该缓存组件中包含存储层、API (Application ProgramInterface;应用程序接口)服务层以及核心功能层。
其中,存储层用于存储同步得到的缓存数据;API服务层用于与控制器或者其他外部设备进行数据交互;核心功能层用于实现与业务***的本地缓存中的缓存数据的同步,以及实现与远程缓存服务器的远程缓存中的缓存数据的同步。
该缓存组件能够在业务***的本地缓存中的缓存数据被清除时,启动远程缓存服务器的数据同步流程,以保证及时将业务***的本地缓存中的缓存数据同步至远程缓存服务器中,能够有效避免现有技术中当缓存数据量较大时将缓存数据同步至远程缓存服务器导致占用***资源的问题。
本申请实施例中所记载的控制器能够与缓存组件、远程缓存服务器进行数据交互,控制器在接收到缓存组件的清除指令时,启动远程缓存服务器的数据同步流程,通过“推”的方式实现远程缓存服务器的数据同步。
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
以下结合附图,详细说明本申请各实施例提供的技术方案。
实施例1
图1为本申请实施例提供的一种数据同步方法的流程示意图。所述方法可以如下所示。本申请实施例的执行主体为本申请实施例中所记载的控制器。
步骤101:接收缓存组件发送的清除指令。
所述清除指令中包含待清除的缓存数据的属性值。
所述缓存组件中存储的缓存数据与业务***的本地缓存中存储的缓存数据同步。
在本申请实施例中,当业务***需要对本地缓存中的缓存数据执行清除操作时,向缓存组件发送清除通知消息。此时,缓存组件通过调用RPC接口向控制器发送清除指令。这里的控制器可以为远程控制器,该远程控制器能够与远程缓存服务器建立数据连接。
假设本申请实施例中所记载的缓存组件集成在业务***中,那么缓存组件可以对业务***的本地缓存中的缓存数据进行管理:一种管理方式可以为将业务***的本地缓存中的缓存数据同步至缓存组件的存储层中(这里的同步可以是在缓存数据存储至本地缓存中时同步发送给缓存组件,也可以是在缓存数据存储至本地缓存之后,由本地缓存再同步至缓存组件中,这里不做具体限定),这样即使业务***的本地缓存中的缓存数据被清除,也能够及时将这些缓存数据同步至远程缓存服务器中;另一种管理方式还可以为在将存储层中的缓存数据同步至远程缓存服务器后,清除缓存数据,以节省存储空间。
需要说明的是,本申请实施例中所记载的缓存数据的属性值可以理解为缓存数据的类型对应的key值,不同类型的缓存数据对应的key值不同。
步骤102:根据所述清除指令,向远程缓存服务器发送数据同步指令。
所述数据同步指令用于指示所述远程缓存服务器从所述缓存组件中同步所述属性值对应的缓存数据。
在本申请实施例中,控制器在接收到缓存组件发送的清除指令时,可以利用与不同远程缓存服务器之间建立的长连接,向所述远程缓存服务器广播数据同步指令。
可选地,控制器在接收到缓存组件发送的清除指令时,首先,将所述清除指令中包含的待清除的缓存数据的属性值存储至清除数据库中。
在本申请实施例中,控制器可以维护一个清除数据库,在该清除数据库中记录待清除的缓存数据。
例如:在清除数据库中记录的待清除的缓存数据可以采用key/value的形式进行存储。在将待清除的缓存数据存储至清除数据库时,一般在清除数据库中生成一条数据记录,该数据记录中包含业务***标识、缓存标识(这里可以指本地缓存还是远程缓存)以及待清除缓存数据的属性值。
其次,从所述清除数据库中读取在所述待清除的缓存数据存储至所述清除数据库之前的设定时间内已存储的待清除的缓存数据的属性值。
在本申请实施例中,缓存组件在发送清除指令之前,可以按照业务***的本地缓存中存储缓存数据的顺序,向控制设备发送清除数据(这里的清除数据可以理解为本地缓存中存储的缓存数据),这样控制设备所维护的清除数据库中将记录业务***的本地缓存中存储的缓存数据的属性值。
一旦控制器接收到缓存组件发送的清除指令,那么控制器可以从清除数据库中读取在接收到该清除指令之间的设定时间内已存储的缓存数据,将这些缓存数据视为本轮待清除的缓存数据,即本轮待同步的缓存数据。
例如:业务***清除本地缓存中的缓存数据的时间周期为1分钟,那么缓存组件在1分钟之内将业务***的本地缓存中的缓存数据的属性值实时地发送给控制设备,使得控制设备将接收到的缓存数据的属性值存储至清除数据库中。当控制器接收到缓存组件发送的清除指令时,从清除数据库中读取前1分钟存储的缓存数据的属性值。
最后,将读取到的待清除的缓存数据的属性值和接收到的待清除的缓存数据的属性值携带在数据同步指令中发送给远程缓存服务器。
具体地,利用读取到的待清除的缓存数据的属性值和接收到的待清除的缓存数据的属性值更新数据同步列表;并将更新后的所述数据同步列表发送给远程缓存服务器。使得远程缓存服务器根据数据同步列表进行缓存数据的数据同步,远程缓存服务器数据同步的方式的详细内容参见实施例3,这里不做详细描述。
通过本申请实施例提供的技术方案,在本申请实施例中通过增加缓存组件和控制器,控制器在接收到缓存组件发送的清除指令时,向远程缓存服务器发送数据同步指令,所述清除指令中包含待清除的缓存数据的属性值,所述缓存组件中存储的缓存数据与业务***的本地缓存中存储的缓存数据同步,所述数据同步指令用于指示所述远程缓存服务器从所述缓存组件中同步所述属性值对应的缓存数据。这样由控制器控制远程缓存服务器的缓存同步功能,能够使得远程缓存服务器快速获取业务***的本地缓存中的缓存数据,保证缓存数据更新的最快,提升远程缓存的缓存效率,有效地解决了现有技术中远程缓存服务消耗***资源大的问题,大大提升了***的整体性能。
实施例2
图2为本申请实施例提供的一种数据同步方法的流程示意图。所述方法可以如下所示。本申请实施例所记载的数据同步方法应用于缓存组件中。
在本申请实施例中,所述缓存组件中存储的缓存数据与业务***的本地缓存中存储的缓存数据同步。
具体地,为了减轻在缓存数据量较大时业务***与远程缓存服务器之间数据同步给整个业务***所造成的压力,本申请实施例中所记载的缓存组件具备存储能力,可以实时或者周期地从业务***中同步业务***的本地缓存中存储的缓存数据,这样在业务***清除本地缓存中的缓存数据时,启动本申请实施例中所记载的数据同步操作,将业务***的本地缓存中的缓存数据同步至缓存组件中。
步骤201:接收所述业务***发送的清除指令,所述清除指令用于提示所述业务***启动本地缓存清除操作,所述清除指令中包含待清除的缓存数据的属性值。
在本申请实施例中,缓存组件接收业务***发送的清除指令,说明业务***准备启动对本地缓存中的缓存数据的清除操作。为了保证本地缓存中的缓存数据还能够被查找到,需要将本地缓存中的缓存数据同步至远程缓存服务器,这样,缓存组件在接收到业务***发送的清除指令时,触发执行步骤202。
步骤202:将所述清除指令转发给控制设备,所述控制设备用于根据所述清除指令向远程缓存服务器发送数据同步指令,所述数据同步指令用于指示所述远程缓存服务器从所述缓存组件中同步所述属性值对应的缓存数据。
步骤203:接收所述远程缓存服务器发送的数据同步请求,所述数据同步请求中包含所述属性值。
在本申请实施例中,若远程缓存服务器接收到控制设备发送的数据同步列表,则远程缓存服务器所发送的数据同步请求中包含所述数据同步列表中的属性值。
步骤204:根据所述数据同步请求中包含的所述属性值,将所述属性值对应的缓存数据同步至所述远程缓存服务器。
在本申请实施例中,缓存组件在接收到远程缓存服务器发送的数据同步请求时,根据所述数据同步请求中包含的所述属性值,从缓存组件的存储层中查找与所述属性值对应的缓存数据,并将查找到缓存数据发送给远程缓存服务器,以达到业务***的本地缓存中的缓存数据同步至远程服务器的目的。
在本申请的另一个实施例中,所述方法还包括:
向所述远程缓存服务器发送数据同步查询消息,所述数据同步查询消息中包含所述属性值;接收所述远程缓存服务器发送的数据同步结果消息,并在根据所述数据同步结果消息确定所述远程缓存服务器数据同步完毕时,向所述业务***发送数据同步完成消息。
在本申请的另一个实施例中,在接收到所述远程缓存服务器发送的数据同步结果消息时,所述方法还包括:
若所述数据同步结果消息为同步成功消息,则对所述属性值对应的缓存数据执行清除操作。
由于业务***的本地缓存数据执行清除操作,那么缓存组件在确定将缓存数据同步至远程缓存服务器之后,也需要对存储的缓存数据执行清除操作,使得保持与业务***的本地缓存同步。
在本申请的另一个实施例中,所述方法还包括:
在对所述属性值对应的缓存数据执行清除操作时,向所述业务***发送数据同步请求,所述数据同步请求用于从所述业务***中同步其本地缓存中的缓存数据。
通过本申请实施例提供的技术方案,缓存组件存储业务***的本地缓存中的缓存数据,并在业务***清除本地缓存的缓存数据时,通知控制器启动数据同步流程,将业务***的本地缓存中的缓存数据同步至远程缓存服务器,这样由控制器控制远程缓存服务器的缓存同步功能,能够使得远程缓存服务器快速获取业务***的本地缓存中的缓存数据,保证缓存数据更新的最快,提升远程缓存的缓存效率,有效地解决了现有技术中远程缓存服务消耗***资源大的问题,大大提升了***的整体性能。
实施例3
图3为本申请实施例提供的一种数据同步方法的流程示意图。所述方法可以如下所示。所述数据同步方法应用于远程缓存服务器中。
步骤301:接收控制设备发送的数据同步指令。
所述数据同步指令是所述控制设备在接收到清除指令时发送的,所述数据同步指令用于指示所述远程缓存服务器从缓存组件中同步属性值对应的缓存数据,所述清除指令由缓存组件发送的。
步骤302:向所述缓存组件发送数据同步请求,所述数据同步请求中包含所述属性值。
步骤303:接收所述缓存组件发送的所述属性值对应的缓存数据,并同步存储所述缓存数据。
通过本申请实施例提供的技术方案,远程缓存服务器在接收到控制器的数据同步指令时,与缓存组件进行数据交互,实现将业务***的本地缓存中的缓存数据同步至远程缓存服务器。这样由控制器控制远程缓存服务器的缓存同步功能,能够使得远程缓存服务器快速获取业务***的本地缓存中的缓存数据,保证缓存数据更新的最快,提升远程缓存的缓存效率,有效地解决了现有技术中远程缓存服务消耗***资源大的问题,大大提升了***的整体性能。
实施例4
图4为本申请实施例提供的一种数据同步方法的流程示意图。所述方法可以如下所示。
步骤401:业务***将本地缓存中存储的缓存数据实时或者周期地同步至缓存组件中。
步骤402:业务***确定清除本地缓存的缓存数据,向缓存组件发送清除指令,所述清除指令中包含待清除的缓存数据的属性值。
步骤403:缓存组件接收所述业务***发送的清除指令。
步骤404:缓存组件将所述清除指令转发给控制设备。
步骤405:控制设备接收缓存组件发送的所述清除指令。
步骤406:控制设备将所述清除指令中包含的待清除的缓存数据的属性值存储至清除数据库中。
步骤407:控制设备从所述清除数据库中读取在所述待清除的缓存数据存储至所述清除数据库之前的设定时间内已存储的待清除的缓存数据的属性值。
步骤408:控制设备将读取到的待清除的缓存数据的属性值和接收到的待清除的缓存数据的属性值携带在数据同步指令中发送给远程缓存服务器。
步骤409:远程缓存服务器接收控制设备发送的数据同步指令。
步骤410:远程缓存服务器向所述缓存组件发送数据同步请求。
步骤411:缓存组件接收所述远程缓存服务器发送的数据同步请求。
步骤412:缓存组件根据所述数据同步请求中包含的所述属性值,将所述属性值对应的缓存数据同步至所述远程缓存服务器。
步骤413:缓存组件向所述远程缓存服务器发送数据同步查询消息。
步骤414:缓存组件接收所述远程缓存服务器发送的数据同步结果消息,并在根据所述数据同步结果消息确定所述远程缓存服务器数据同步完毕时,向所述业务***发送数据同步完成消息。
步骤415:缓存组件在接收到所述远程缓存服务器发送的数据同步结果消息时,若所述数据同步结果消息为同步成功消息,则对所述属性值对应的缓存数据执行清除操作。
步骤416:缓存组件在对所述属性值对应的缓存数据执行清除操作时,向所述业务***发送数据同步请求,所述数据同步请求用于从所述业务***中同步其本地缓存中的缓存数据。
实施例5
图5为本申请实施例提供的一种数据同步设备的结构示意图。本申请实施例提供的数据同步设备可以集成在控制器中。所述数据同步设备包括:接收单元51和发送单元52,其中:
接收单元51,接收缓存组件发送的清除指令,所述清除指令中包含待清除的缓存数据的属性值,所述缓存组件中存储的缓存数据与业务***的本地缓存中存储的缓存数据同步;
发送单元52,根据所述清除指令,向远程缓存服务器发送数据同步指令,所述数据同步指令用于指示所述远程缓存服务器从所述缓存组件中同步所述属性值对应的缓存数据。
在本申请的另一个实施例中,所述发送单元52根据所述清除指令,向远程缓存服务器发送数据同步指令,包括:
将所述清除指令中包含的待清除的缓存数据的属性值存储至清除数据库中;
从所述清除数据库中读取在所述待清除的缓存数据存储至所述清除数据库之前的设定时间内已存储的待清除的缓存数据的属性值;
将读取到的待清除的缓存数据的属性值和接收到的待清除的缓存数据的属性值携带在数据同步指令中发送给远程缓存服务器。
在本申请的另一个实施例中,所述发送单元52将读取到的待清除的缓存数据的属性值和接收到的待清除的缓存数据的属性值携带在数据同步指令中发送给远程缓存服务器,包括:
利用读取到的待清除的缓存数据的属性值和接收到的待清除的缓存数据的属性值更新数据同步列表;
将更新后的所述数据同步列表发送给远程缓存服务器。
在本申请的另一个实施例中,所述发送单元52向远程缓存服务器发送数据同步指令,包括:
利用与远程缓存服务器之间建立的长连接,向所述远程缓存服务器广播数据同步指令。
需要说明的是,本申请实施例中所记载的数据同步设备可以通过软件方式实现,也可以通过硬件方式实现,这里不做具体限定。通过在接收到缓存组件发送的清除指令时,向远程缓存服务器发送数据同步指令,所述清除指令中包含待清除的缓存数据的属性值,所述缓存组件中存储的缓存数据与业务***的本地缓存中存储的缓存数据同步,所述数据同步指令用于指示所述远程缓存服务器从所述缓存组件中同步所述属性值对应的缓存数据。这样由控制器控制远程缓存服务器的缓存同步功能,能够使得远程缓存服务器快速获取业务***的本地缓存中的缓存数据,保证缓存数据更新的最快,提升远程缓存的缓存效率,有效地解决了现有技术中远程缓存服务消耗***资源大的问题,大大提升了***的整体性能。
实施例6
图6为本申请实施例提供的一种数据同步设备的结构示意图。所述数据同步设备应用于缓存组件中,所述缓存组件中存储的缓存数据与业务***的本地缓存中存储的缓存数据同步。所述数据同步设备包括:接收单元61、发送单元 62和同步单元63,其中:
接收单元61,接收所述业务***发送的清除指令,所述清除指令用于提示所述业务***启动本地缓存清除操作,所述清除指令中包含待清除的缓存数据的属性值;
发送单元62,将所述清除指令转发给控制设备,所述控制设备用于根据所述清除指令向远程缓存服务器发送数据同步指令,所述数据同步指令用于指示所述远程缓存服务器从所述缓存组件中同步所述属性值对应的缓存数据;
所述接收单元61,接收所述远程缓存服务器发送的数据同步请求,所述数据同步请求中包含所述属性值;
同步单元63,根据所述数据同步请求中包含的所述属性值,将所述属性值对应的缓存数据同步至所述远程缓存服务器。
在本申请的另一个实施例中,所述发送单元62,向所述远程缓存服务器发送数据同步查询消息,所述数据同步查询消息中包含所述属性值;
所述接收单元61,接收所述远程缓存服务器发送的数据同步结果消息;
所述发送单元62,在根据所述数据同步结果消息确定所述远程缓存服务器数据同步完毕时,向所述业务***发送数据同步完成消息。
在本申请的另一个实施例中,所述数据同步设备还包括:清除单元64,其中:
所述清除单元64,在接收到所述远程缓存服务器发送的数据同步结果消息时,若所述数据同步结果消息为同步成功消息,则对所述属性值对应的缓存数据执行清除操作。
在本申请的另一个实施例中,所述同步单元63,在对所述属性值对应的缓存数据执行清除操作时,向所述业务***发送数据同步请求,所述数据同步请求用于从所述业务***中同步其本地缓存中的缓存数据。
需要说明的是,本申请实施例中所记载的数据同步设备可以通过软件方式实现,也可以通过硬件方式实现,这里不做具体限定。本申请实施例中所记载的数据同步设备存储业务***的本地缓存中的缓存数据,并在业务***清除本地缓存的缓存数据时,通知控制器启动数据同步流程,将业务***的本地缓存中的缓存数据同步至远程缓存服务器,这样由控制器控制远程缓存服务器的缓存同步功能,能够使得远程缓存服务器快速获取业务***的本地缓存中的缓存数据,保证缓存数据更新的最快,提升远程缓存的缓存效率,有效地解决了现有技术中远程缓存服务消耗***资源大的问题,大大提升了***的整体性能。
实施例7
图7为本申请实施例提供的一种数据同步设备的结构示意图。所述数据同步设备应用于远程缓存服务器中。所述数据同步设备包括:接收单元71、发送单元72和同步单元73,其中:
接收单元71,接收控制设备发送的数据同步指令,所述数据同步指令是所述控制设备在接收到清除指令时发送的,所述数据同步指令用于指示所述远程缓存服务器从缓存组件中同步属性值对应的缓存数据,所述清除指令由缓存组件发送的;
发送单元72,向所述缓存组件发送数据同步请求,所述数据同步请求中包含所述属性值;
同步单元73,接收所述缓存组件发送的所述属性值对应的缓存数据,并同步存储所述缓存数据。
需要说明的是,本申请实施例中所记载的数据同步设备可以通过软件方式实现,也可以通过硬件方式实现,这里不做具体限定。本申请实施例中所记载的数据同步设备在接收到控制器的数据同步指令时,与缓存组件进行数据交互,实现将业务***的本地缓存中的缓存数据同步至远程缓存服务器。这样由控制器控制远程缓存服务器的缓存同步功能,能够使得远程缓存服务器快速获取业务***的本地缓存中的缓存数据,保证缓存数据更新的最快,提升远程缓存的缓存效率,有效地解决了现有技术中远程缓存服务消耗***资源大的问题,大大提升了***的整体性能。
实施例8
图8为本申请实施例提供的一种数据同步***的结构示意图。所述数据同步***包括:业务***81、缓存组件82、控制器83和远程缓存服务器84,其中:
业务***81为本申请实施例中所记载的业务,在本地缓存中存储缓存数据,并实时或者周期地将缓存数据同步至缓存组件82中。
缓存组件82具备本申请实施例6中所记载的功能,这里不再详细描述。
可选地,本申请实施例中所记载的缓存组件82可以包含缓存服务模块、缓存服务管理模块、清除通知模块、同步模块、Ehcache模块、Tair模块、Rcache 模块等等。
控制器83具备本申请实施例5中所记载的功能,这里不再详细描述。
远程缓存服务器84具备本申请实施例7中所记载的功能,这里不再详细描述。
本领域内的技术人员应明白,本发明的实施例可提供为方法、***、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、 CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和 /或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/ 或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存 (PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器 (CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、***或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。