缓存同步控制方法、装置、系统、服务器及可读存储介质制造方法及图纸

技术编号:19857558 阅读:23 留言:0更新日期:2018-12-22 11:42
本说明书实施例提供了一种缓存同步控制方法,用于在应用向数据库进行写数据操作时,基于原子性的事务消息,对缓存中存储的所述应用相关的原数据进行清理,可避免数据库写成功而缓存清理的失败的情况,可以保证缓存数据的有效性。

【技术实现步骤摘要】
缓存同步控制方法、装置、系统、服务器及可读存储介质
本说明书实施例涉及互联网
,尤其涉及一种缓存同步控制方法、装置、系统、服务器及可读存储介质。
技术介绍
在高并发业务系统中,对于读多写少的业务数据通常会使用增加缓存的方式来提高系统的QPS(每秒查询率)与RT(响应时间)。缓存必须与数据库保持一致性,从而确保数据有效。
技术实现思路
本说明书实施例提供一种缓存同步控制方法、装置、系统、服务器及可读存储介质。第一方面,本说明书实施例提供一种缓存同步控制方法,用于在应用向数据库进行写数据操作时,对缓存中存储的所述应用相关的原数据进行清理,所述方法包括:应用第一设备向数据库发起写数据操作;所述应用第一设备向应用第二设备发起所述写数据操作对应的事务消息;当所述应用第二设备接收到所述事务消息之后,根据所述事务消息中的缓存清理标识,请求对缓存中的原数据进行清理。第二方面,本说明书实施例提供一种缓存同步控制装置,用于在应用向数据库进行写数据操作时,控制对缓存中存储的所述应用相关的原数据进行清理,所述装置位于应用第一设备中,所述装置包括:写数据操作发起单元,用于向数据库发起写数据操作;事务消息发送单元,用于向应用第二设备发起所述写数据操作对应的事务消息,以便所述应用第二设备根据所述事务消息请求对缓存中的原数据进行清理。第三方面,本说明书实施例提供一种缓存同步控制系统,用于在应用向数据库进行写数据操作时,对缓存中存储的所述应用相关的原数据进行清理,所述系统包括应用第一设备、应用第二设备、数据库及缓存,其中:所述应用第一设备,用于向数据库发起写数据操作,并向应用第二设备发起所述写数据操作对应的事务消息;所述应用第二设备,用于在接收到所述事务消息之后,根据所述事务消息中的缓存清理标识,请求对缓存中的原数据进行清理。第四方面,本说明书实施例提供一种服务器,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述缓存同步控制方法的步骤。第五方面,本说明书实施例提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述缓存同步控制方法的步骤。本说明书实施例有益效果如下:通过本说明书实施例提供的缓存同步控制方法,用于在应用向数据库进行写数据操作时,基于原子性的事务消息,对缓存中存储的所述应用相关的原数据进行清理,可避免数据库写成功而缓存清理的失败的情况,可以保证缓存数据的有效性。附图说明图1为本说明书实施例缓存同步应用场景示意图;图2本说明书实施例第一方面提供的缓存同步控制方法流程图;图3本说明书实施例第一方面提供的缓存同步控制方法实例实现示意图;图4本说明书实施例第二方面提供的缓存同步控制装置结构示意图;图5本说明书实施例第三方面提供的缓存同步控制系统示意图;图6本说明书实施例第四方面提供的缓存同步控制服务器结构示意图。具体实施方式为了更好的理解上述技术方案,下面通过附图以及具体实施例对本说明书实施例的技术方案做详细的说明,应当理解本说明书实施例以及实施例中的具体特征是对本说明书实施例技术方案的详细的说明,而不是对本说明书技术方案的限定,在不冲突的情况下,本说明书实施例以及实施例中的技术特征可以相互组合。参见图1,为本说明书实施例缓存同步应用场景示意图。图1中所示场景中,包括当前使用的APP(应用程序、应用)101、DB(数据库、Database)102、Cache(缓存)103。在查询链路(读数据)过程中,APP从数据库中读取数据并写入缓存;在写链路(写数据)过程中,APP向数据库写入数据并清理缓存。如前提及的,以高并发业务系统为例,为了提高系统的QPS(每秒查询率)与RT(响应时间),通常会针对读多写少的业务数据设置缓存。通常数据库发生写操作时,需要及时清理缓存,从而保证数据一致性。然而,由于清理缓存与写DB不是原子性的,如果部分操作成功的话,还是会导致缓存状态与数据库状态不一致,例如:写DB成功但是清理缓存失败,这种情况下,就没有对缓存进行及时清理,从而对业务上造成影响。一种保证缓存一致性的方案是在APP里显示清理缓存,如果清理失败,会兜底使用缓存超时来保证缓存与数据库的最终一致。然而,如果超时时间太短会影响缓存的命中率;如果缓存超时太长,则业务上不能接受。本说明书实施例提出通过基于原子性的事务消息,来保证在写DB同时确保成功清理缓存,从而确保数据库状态发生变更时,缓存可以立即清理掉。这就使得将缓存超时时间设置的长一些变为可能,从而保证缓存的命中率。第一方面,本说明书实施例提供一种缓存同步方法,用于在应用向数据库进行写数据操作时,对缓存中存储的所述应用相关的原数据进行清理。请参考图2,为本说明书实施例提供的缓存同步方法流程图,包括步骤S201-S203。S201:应用第一设备向数据库发起写数据操作。一般由当前APP所在设备向数据库发起写数据操作。例如,当前APP执行某些网络业务,发生了业务数据变更时,需要对DB进行写操作。本说明书实施例中,以“应用第一设备”表示当前APP所在的设备,为了区分,后续以“应用第二设备”、“应用第三设备”表示同一款APP所在的其他设备。需要说明的是,应用第一设备、应用第二设备、应用第三设备等都是APP所在的设备,一般是不同的物理设备,当然也不排除是同一个屋里设备的可能。具体应用场景中,应用第一设备、应用第二设备、应用第三设备可以是用户操作的终端,也可以是网络设备,例如服务器。S202:应用第一设备向应用第二设备发起写数据操作对应的事务消息。为了在向数据库进行写数据过程中,保证对缓存进行成功清理,本说明书实施例采用基于原子性的事务消息,从而告知应用第二设备进行缓存清理。事务,是并发控制的单位,可以理解为访问数据库时一系列的逻辑相关动作。比如,列车订票系统中,选择目的地(或车次)、选择日期和时间、选择作为、出票和付款,这一系列的业务处理构成一个事务。事务消息,是一种基于分布式系统下,可以与数据库写数据事务保证原子性的消息。订阅方收到事务消息后,可以确定发送方的业务一定是成功的。如果订阅方没有收到消息,则可以确定业务一定没有提交或已经被回滚。可以理解,本说明书实施例中,应用第一设备作为发送方、应用第二设备作为订阅方,二者之间传递有关写数据操作对应的事务消息。当应用第一设备执行完S201步骤之后,即向数据库发起写数据操作之后,就向应用第二设备发起写数据操作对应的事务消息,以通知应用第二设备对缓存相关原数据进行清理。事务消息中可携带缓存清理标识,用以告知应用第二设备对哪一部分数据进行清理。S203:当应用第二设备接收到事务消息之后,根据事务消息中的缓存清理标识,请求对缓存中的原数据进行清理。应用第二设备如果接收到事务消息,根据之前对事务消息的理解,则说明与该事务消息具有原子性关系的写数据操作成功了,因此,此时需要执行该事务消息对应的操作,即,对缓存中的原数据进行清理。具体的,可根据事务消息中携带的缓存清理标识,从缓存中确定出待清理的具体数据,然后向缓存发送删除这部分数据的请求。通过本说明书实施例提供的缓存同步方法,用于在应用向数据库进行写数据操作时,基于原子性的事务消息,对缓存中存储的所述应用相关的原数据进行清理,可避免数据库写本文档来自技高网...

【技术保护点】
1.一种缓存同步控制方法,用于在应用向数据库进行写数据操作时,对缓存中存储的所述应用相关的原数据进行清理,所述方法包括:应用第一设备向数据库发起写数据操作;所述应用第一设备向应用第二设备发起所述写数据操作对应的事务消息;当所述应用第二设备接收到所述事务消息之后,根据所述事务消息中的缓存清理标识,请求对缓存中的原数据进行清理。

【技术特征摘要】
1.一种缓存同步控制方法,用于在应用向数据库进行写数据操作时,对缓存中存储的所述应用相关的原数据进行清理,所述方法包括:应用第一设备向数据库发起写数据操作;所述应用第一设备向应用第二设备发起所述写数据操作对应的事务消息;当所述应用第二设备接收到所述事务消息之后,根据所述事务消息中的缓存清理标识,请求对缓存中的原数据进行清理。2.根据权利要求1所述的方法,在所述应用第一设备向数据库发起写数据操作之后,还包括:所述应用第一设备请求对缓存中的原数据进行同步清理。3.根据权利要求1所述的方法,在所述应用第一设备向应用第二设备发起所述写数据操作对应的事务消息之后,还包括:确定所述写数据操作是否成功,若写数据操作失败,所述应用第一设备对所述事务消息进行回滚操作。4.根据权利要求1所述的方法,所述应用第一设备向应用第二设备发起所述写数据操作对应的事务消息,包括:所述应用第一设备向消息中间件发送所述写数据操作对应的事务消息;所述消息中间件确定出与所述应用第一设备具有应用关联的应用第二设备,并将所述事务消息转发给所述应用第二设备,以便应用第二设备请求对缓存中的原数据进行清理。5.根据权利要求4所述的方法,还包括:所述消息中间件确认所述应用第二设备是否成功清理所述缓存;若所述应用第二设备未成功清理所述缓存,所述消息中间件确定出与所述应用第一设备具有应用关联的应用第三设备,并将所述事务消息转发给所述应用第三设备,以便所述应用第三设备请求对缓存中的原数据进行清理。6.根据权利要求4或5所述的方法,所述消息中间件确定出所述应用第二设备或所述应用第三设备,包括:所述消息中间件根据当前业务,确定出与自身有业务消息传递的设备;从所述与自身有业务消息传递的设备中,选择出与所述应用第一设备具有应用关联的应用第二设备或应用第三设备;其中,所述消息中间件复用所述业务消息,从而通过所述业务消息向所述应用第二设备或应用第三设备转发所述事务消息。7.一种缓存同步控制装置,用于在应用向数据库进行写数据操作时,控制对缓存中存储的所述应用相关的原数据进行清理,所述装置位于应用第一设备中,所述装置包括:写数据操作发起单元,用于向数据库发起写数据操作;事务消息发送单元,用于向应用第二设备发起所述写数据操作对应的事务消息,以便所述应用第二设备根据所述事务消息请求对缓存中的原数据进行清理。8.根据权利要求7所述的装置,还包括:同步清理单元,用于在发起写数据操作之后,请求对缓存中的原数据进行同步清理。9...

【专利技术属性】
技术研发人员:韩杰
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛,KY

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

1