处理分散式缓存数据的方法和装置制造方法及图纸

技术编号:10623450 阅读:119 留言:0更新日期:2014-11-06 16:31
本发明专利技术提供一种处理分散式缓存数据的方法和装置,有助于保证用户访问的缓存数据与数据库数据相一致,并有助于减轻服务器负荷。在有终端更新数据库数据时,应用系统实例根据终端提供的数据更新数据库以及缓存中的数据,以及判断终端是否提供缓存标识,若是,则更新该缓存标识然后返回给终端,否则创建缓存标识然后返回给终端;在有终端查询数据库数据时,应用系统实例判断终端是否提供了缓存标识;若提供,则根据缓存标识判断自身缓存的被查数据是否与数据库中的数据一致,若一致则将缓存数据返回给终端,否则将数据库数据返回给终端;若未提供,则将数据库数据返回给终端,以及按数据库数据更新缓存数据,并且创建缓存标识然后返回给终端。

【技术实现步骤摘要】
处理分散式缓存数据的方法和装置
本专利技术涉及计算机网络
,特别地涉及一种处理分散式缓存数据的方法和装置。
技术介绍
在当今Web应用系统(以下简称为应用系统)中,集群部署应用系统是广泛采用的部署方式。集群部署应用系统通常包含多个实例,实例是Web应用服务器上(Tomcat、Jboss等)部署应用系统的具体服务实例,可单独为用户提供访问服务。用户在访问应用系统时,按应用系统的负荷分配机制,每次访问到的实例与上次访问到的实例相同或者不相同。图1是根据现有技术中的应用系统的结构的示意图。如图1所示,用户使用的终端可以通过互联网11访问应用系统10,应用系统10包括多个应用服务器,各个应用服务器上部署有实例,每个实例具有缓存。现有应用系统实例之间数据缓存的方式很多为分散式缓存。分散式缓存是指将应用系统的数据库中的数据放入到各个应用系统实例的缓存中,应用系统实例每次查询都是先到本实例缓存中查询数据,如果有,返回数据;如果没有,到数据库中查询数据,放入本实例缓存当中,并返回数据。用户使用终端修改数据库数据时,应用系统实例按照用户提供的新数据,对数据库中的数据修改之后,还要修改该应用系统实例缓存的数据,并且触发缓存的同步机制,将数据同步给其他应用系统实例的缓存,以期保持各个应用系统实例缓存中用户数据的一致性。但是缓存的同步机制仍不能消除系统实例缓存之间的数据延迟问题,这使得用户访问到的数据可能与数据库中的数据不一致。例如,当前数据库中有数据X,数据X同时被各实例缓存;用户A访问应用系统实例1,将数据库中的数据X修改为Y;用户A再次访问应用系统时,访问到的是应用系统的另一实例2,就会查询到应用实例2中缓存的数据,如果向实例2的数据同步发生延迟,即实例2的缓存数据仍为X,在这种情况下,用户A得到的是该数据X,而非修改后的数据Y。数据同步延迟问题会随着Web应用系统实例数量的增加而越发严重,使得用户访问到的数据与数据库数据不一致的情况增多。缓存的同步机制使服务器之间数据交互量增大,加重了服务器负荷,影响了服务器性能。
技术实现思路
有鉴于此,本专利技术提供一种处理分散式缓存数据的方法和装置,有助于保证用户访问的缓存数据与数据库数据相一致,并且有助于减轻服务器负荷。为实现上述目的,根据本专利技术的一个方面,提供了一种处理分散式缓存数据的方法和装置。本专利技术的处理分散式缓存数据的方法,用于处理缓存在内存中的数据库数据,该方法包括:在有终端更新数据库数据时,该终端访问到的应用系统实例根据该终端提供的数据更新数据库以及缓存中的数据,以及判断该终端是否提供缓存标识,若是,则更新该缓存标识然后返回给该终端,否则创建缓存标识然后返回给该终端;所述缓存标识用于按缓存的数据类型分别记录各应用系统实例中缓存的数据是否与数据库中的数据相一致;在有终端查询数据库数据时,该终端访问到的应用系统实例判断该终端是否提供了缓存标识;若终端提供了缓存标识,根据该缓存标识判断自身缓存的被查数据是否与数据库中的数据一致,若一致则将缓存的数据返回给该终端,若不一致则将数据库中的数据返回给该终端;若终端未提供缓存标识,则将数据库中的数据返回给该终端,以及按数据库数据更新缓存数据,并且创建缓存标识然后返回给该终端。可选地,所述缓存标识保存在Cookie中。可选地,所述缓存标识包括标准缓存标识和实例缓存标识;标准缓存标识用于按应用系统的数据类型分别记录最近一次修改该数据类型的缓存数据的应用系统实例的标识;实例缓存标识有多个,分别与应用系统实例对应,用于按应用系统的数据类型记录应用系统实例中的缓存数据的最新版本,版本值为最近一次修改该应用系统实例中的该缓存数据的应用系统实例的标识。根据本专利技术的另一方面,提供了一种处理分散式缓存数据的装置。本专利技术的处理分散式缓存数据的装置,用于处理缓存在内存中的数据库数据,该装置包括:更新数据模块,用于根据来访的终端提供的数据更新数据库以及缓存中的数据,以及判断该终端是否提供缓存标识,若是,则更新该缓存标识然后返回给该终端,否则创建缓存标识然后返回给该终端;所述缓存标识用于按缓存的数据类型分别记录各应用系统实例中缓存的数据是否与数据库中的数据相一致;查询数据模块,用于判断来访的终端是否提供了缓存标识;若终端提供了缓存标识,根据该缓存标识判断自身缓存的被查数据是否与数据库中的数据一致,若一致则将缓存的数据返回给该终端,若不一致则将数据库中的数据返回给该终端;若终端未提供缓存标识,则将数据库中的数据返回给该终端,以及按数据库数据更新缓存数据,并且创建缓存标识然后返回给该终端。可选地,所述更新数据模块和所述查询数据模块还用于从来访的终端提供的Cookie中获取所述缓存标识。可选地,所述缓存标识包括标准缓存标识和实例缓存标识;标准缓存标识用于按应用系统的数据类型分别记录最近一次修改该数据类型的缓存数据的应用系统实例的标识;实例缓存标识有多个,分别与应用系统实例对应,用于按应用系统的数据类型记录应用系统实例中的缓存数据的最新版本,版本值为最近一次修改该应用系统实例中的该缓存数据的应用系统实例的标识。根据本专利技术的技术方案,采用缓存标识来记录应用系统的各实例中缓存的数据是否与数据库中的数据相一致,在终端访问应用系统实例时,终端向实例提供缓存标识,该实例根据缓存标识来判断自身缓存的数据与数据库中的数据是否一致,若一致则向终端提供缓存数据,反之则提供数据库中的数据。这种方式取消了原有的缓存数据同步机制,减轻服务器负荷,并有助于保证用户访问的缓存数据与数据库数据相一致,另外在终端重复访问实例时仍能快速提供缓存数据,提高了终端获取数据的效率。附图说明附图用于更好地理解本专利技术,不构成对本专利技术的不当限定。其中:图1是根据现有技术中的应用系统的结构的示意图;图2是根据本专利技术实施例的缓存标识的结构的示意图;图3是根据本专利技术实施例的更新数据库数据的基本步骤的示意图;图4是根据本专利技术实施例的查询数据库数据的基本步骤的示意图;图5是根据本专利技术实施例的处理分散式缓存数据的装置的基本结构的示意图。具体实施方式以下结合附图对本专利技术的示范性实施例做出说明,其中包括本专利技术实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本专利技术的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。在本专利技术实施例中,采用缓存标识来记录应用系统的各实例中缓存的数据是否与数据库中的数据相一致,在终端访问应用系统实例时,终端向实例提供缓存标识,该实例根据缓存标识来判断自身缓存的数据与数据库中的数据是否一致,若一致则向终端提供缓存数据,反之则提供数据库中的数据。以下先结合图2,对本实施例采用的缓存标识的结构做出说明。图2是根据本专利技术实施例的缓存标识的结构的示意图。如图2所示,缓存标识2由一个标准缓存标识21和多个实例缓存标识构成,实例缓存标识与应用系统实例一一对应,例如应用系统有4个实例,则有图2中的实例缓存标识221、222、223以及224。图2示出的缓存标识考虑了应用系统具有多个数据类型的情况,即标准缓存标识和实例缓存标识都是字符串,字符串的每一位对应一种数据类型。标准缓存标识21本文档来自技高网
...
处理分散式缓存数据的方法和装置

【技术保护点】
一种处理分散式缓存数据的方法,用于处理缓存在内存中的数据库数据,其特征在于,该方法包括:在有终端更新数据库数据时,该终端访问到的应用系统实例根据该终端提供的数据更新数据库以及缓存中的数据,以及判断该终端是否提供缓存标识,若是,则更新该缓存标识然后返回给该终端,否则创建缓存标识然后返回给该终端;所述缓存标识用于按缓存的数据类型分别记录各实例中缓存的数据是否与数据库中的数据相一致;在有终端查询数据库数据时,该终端访问到的应用系统实例判断该终端是否提供了缓存标识;若终端提供了缓存标识,根据该缓存标识判断自身缓存的被查数据是否与数据库中的数据一致,若一致则将缓存的数据返回给该终端,若不一致则将数据库中的数据返回给该终端;若终端未提供缓存标识,则将数据库中的数据返回给该终端,以及按数据库数据更新缓存数据,并且创建缓存标识然后返回给该终端。

【技术特征摘要】
1.一种处理分散式缓存数据的方法,用于处理缓存在内存中的数据库数据,其特征在于,该方法包括:在有终端更新数据库数据时,该终端访问到的应用系统实例根据该终端提供的数据更新数据库以及缓存中的数据,以及判断该终端是否提供缓存标识,若是,则更新该缓存标识然后返回给该终端,否则创建缓存标识然后返回给该终端;所述缓存标识用于按缓存的数据类型分别记录各应用系统实例中缓存的数据是否与数据库中的数据相一致;所述缓存标识包括标准缓存标识和实例缓存标识;标准缓存标识用于按应用系统的数据类型分别记录最近一次修改该数据类型的缓存数据的应用系统实例的标识;实例缓存标识有多个,分别与应用系统实例对应,用于按应用系统的数据类型记录应用系统实例中的缓存数据的最新版本,版本值为最近一次修改该应用系统实例中的该缓存数据的应用系统实例的标识;在有终端查询数据库数据时,该终端访问到的应用系统实例判断该终端是否提供了缓存标识;若终端提供了缓存标识,根据该缓存标识判断自身缓存的被查数据是否与数据库中的数据一致,若一致则将缓存的数据返回给该终端,若不一致则将数据库中的数据返回给该终端;若终端未提供缓存标识,则将数据库中的数据返回给该终端,以及按数据库数据更新缓存数据,并且创建缓存标识然后返回给该终端。2.根据权利要求1所述的方法,其特征在于,所述缓存标识保存在Cookie中...

【专利技术属性】
技术研发人员:韩松
申请(专利权)人:北京京东尚科信息技术有限公司北京京东世纪贸易有限公司
类型:发明
国别省市:北京;11

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

1