分布式缓存系统、缓存同步方法和装置制造方法及图纸

技术编号:19480022 阅读:54 留言:0更新日期:2018-11-17 10:32
本申请提供一种分布式缓存系统、缓存同步方法和装置,该系统包括:主站点和子站点,主站点和子站点均包括:缓存设备和消息队列服务器,主站点的缓存设备用于当主站点的缓存设备中的数据被更新时生成更新消息,并将更新消息发送给主站点的消息队列服务器,主站点的消息队列服务器,用于通过消息路由的方式将更新消息发送给子站点的消息队列服务器,子站点的缓存设备用于从子站点的消息队列服务器中读取更新消息,根据更新消息中的元数据清除子站点的缓存设备中的被更新数据。由于主站点和子站点之间通过消息路由的方式传输更新消息,从而能够保证数据的可靠性,并且传输速度快,提升了缓存的更新速度。

【技术实现步骤摘要】
分布式缓存系统、缓存同步方法和装置
本申请涉及数据库技术,尤其涉及一种分布式缓存系统、缓存同步方法和装置。
技术介绍
在高并发环境下,大量的读写请求涌向数据库,磁盘的处理速度与内存显然不在一个量级,为了减轻数据库的压力和提高系统响应速度,在数据库之前加一层缓存。由于单台机器的内存资源以及承载能力有限,如果大量使用数据库服务器的本地缓存,会导致数据库服务器的内存资源不足,并且每个数据库服务器的缓存中都会存储相同的数据,对导致数据库服务器的内存资源造浪费,因此,分布式缓存技术应用而生。分布式缓存即将缓存独立部署到一个或多个服务器上,缓存设备独立于数据库服务器。分布式缓存可以采用跨站点部署的系统架构,跨站点部署的系统架构中包括多个站点,该多个站点包括一个主站点和子站点。每个站点包括缓存设备和数据库,当某个站点的缓存设备接收到客户端发送的数据读取请求时,该缓存设备先从缓存中读取数据,当缓存中没有客户端请求的数据时,缓存设备从该站点的数据库中读取数据,并缓存读取到的数据,下次当客户端再次请求相同的数据时,可以直接从缓存中读取数据。跨站点部署的系统架构,所有的写操作只能在主站点完成,读操作在子站点完成,数据由主站点的数据库同步至子站点的数据库,当主站点缓存中的数据发生变化后,如果子站点的缓存没有及时更新,将影响缓存数据实时性。现有技术中,主站点的缓存中的数据更新后,主站点的缓存设备向子站点的缓存设备发送消息,该消息中包含被更新数据的键值(key),子站点的缓存设备侦听并处理该消息,根据该消息中的被更新数据的key清理掉缓存中该key对应的数据。但是,现有技术中,站点之间发送的消息容易丢失,从而导致子站点无法及时清理掉缓存。
技术实现思路
本申请提供一种分布式缓存系统、缓存同步方法和装置,提升了缓存的更新速度和数据的可靠性。本申请第一方面提供一种分布式缓存系统,包括:主站点和子站点,所述主站点和子站点均包括:缓存设备和消息队列服务器;所述主站点的缓存设备,用于当所述主站点的缓存设备中的数据被更新时,生成更新消息,并将所述更新消息发送给所述主站点的消息队列服务器,所述更新消息中包括被更新数据的元数据:所述主站点的消息队列服务器,用于通过消息路由的方式将所述更新消息发送给所述子站点的消息队列服务器;所述子站点的消息队列服务器,用于缓存所述更新消息;所述子站点的缓存设备,用于从所述子站点的消息队列服务器中读取所述更新消息,根据所述更新消息中的所述元数据清除所述子站点的缓存设备中的所述被更新数据。可选的,所述被更新数据的元数据中包括所述被更新数据的版本信息;所述子站点的缓存设备,还用于缓存所述被更新数据的版本信息。可选的,所述子站点的缓存设备还用于:当接收到所述被更新数据的读取请求时,从所述子站点的数据库中读取所述被更新数据;判断从所述数据库中读取的所述被更新数据的版本信息与所述子站点的缓存设备中缓存的所述版本信息是否相同;当从所述数据库中读取的所述被更新数据的版本信息与所述子站点的缓存设备中缓存的所述版本信息相同时,缓存从所述数据库中读取的所述被更新数据。可选的,所述子站点还包括:消息监听设备,用于监听所述子站点的消息队列服务器中的消息,并将监听到的所述更新消息发送给所述子站点的缓存设备。本申请第二方面提供一种缓存同步方法,所述方法应用在分布式缓存系统中,所述分布式缓存系统包括主站点和子站点,所述主站点和子站点均包括:缓存设备和消息队列服务器,所述方法包括:当所述主站点的缓存设备中的数据被更新时,所述主站点的缓存设备生成更新消息,所述更新消息中包括被更新数据的元数据;所述主站点的缓存设备将所述更新消息发送给所述主站点的消息队列服务器;所述主站点的消息队列服务器通过消息路由的方式将所述更新消息发送给所述子站点的消息队列服务器。可选的,所述被更新数据的元数据中包括所述被更新数据的版本信息。本申请第三方面提供一种缓存同步方法,所述方法应用在分布式缓存系统中,所述分布式缓存系统包括主站点和子站点,所述主站点和子站点均包括:缓存设备和消息队列服务器,所述方法包括:所述子站点的消息队列服务器接收主站点的消息队列服务器通过消息路由方式发送的更新消息,并缓存所述更新消息,所述更新消息中包括被更新数据的元数据:所述子站点的缓存设备从所述子站点的消息队列服务器中读取所述更新消息,根据所述被更新数据的元数据清除所述子站点的缓存设备中的所述被更新数据。可选的,所述被更新数据的元数据中还包括所述被更新数据的版本信息,所述方法还包括:所述子站点的缓存设备缓存所述被更新数据的版本信息。可选的,所述方法还包括:当接收到所述被更新数据的读取请求时,所述子站点的缓存设备从所述子站点的数据库中读取所述被更新数据;所述子站点的缓存设备判断从所述数据库中读取的所述被更新数据的版本信息与所述子站点的缓存设备中缓存的所述版本信息是否相同;当从所述数据库中读取的所述被更新数据的版本信息与所述子站点的缓存设备中缓存的所述版本信息相同时,所述子站点的缓存设备缓存从所述数据库中读取的所述被更新数据。本申请第四方面提供一种所述子站点还包括消息监听设备,所述方法还包括:所述消息监听设备监听所述子站点的消息队列服务器中的消息,并将监听到的所述更新消息发送给所述子站点的缓存设备。本申请第五方面提供一种缓存设备,包括:包括缓存、接口和处理器,所述缓存、所述接口和所述处理器通信,其中,所述缓存,用于存储数据;所述处理器,用于当所述缓存中的数据被更新时,生成更新消息,所述更新消息中包括被更新数据的元数据和所述被更新数据的版本信息;所述接口,用于将所述更新消息发送给所述主站点的消息队列服务器。本申请第六方面提供一种消息队列服务器,包括:缓存和接口,所述缓存和所述接口通信,其中,所述接口,用于接收主站点的缓存设备发送的更新消息,所述更新消息中包括被更新数据的元数据和所述被更新数据的版本信息;所述缓存,用于存储所述更新消息;所述接口,还用于通过消息路由的方式将所述更新消息发送给子站点的消息队列服务器。本申请第七方面提供一种缓存设备,包括缓存、接口和处理器,所述缓存、所述接口和所述处理器通信,其中,所述缓存,用于存储数据;所述接口,用于接收子站点的消息队列服务器发送的更新消息,所述更新消息中包括被更新数据的元数据和所述被更新数据的版本信息;所述缓存,还用于存储所述被更新数据的版本信息;所述处理器,用于根据所述被更新数据的元数据,清除所述缓存中的所述被更新数据。可选的,所述接口,还用于接收所述被更新数据的读取请求;所述处理器还用于:从所述子站点的数据库中读取所述被更新数据;判断从所述数据库中读取的所述被更新数据的版本信息与所述缓存中存储的所述版本信息是否相同;当从所述数据库中读取的所述被更新数据的版本信息与缓存中存储的所述版本信息相同时,将从所述数据库中读取的所述被更新数据存储到所述缓存中。本申请第八方面提供一种消息队列服务器,包括接口和缓存,所述接口和所述缓存通信,其中,所述接口,用于接收主站点的消息队列服务器发送的更新消息,所述更新消息中包括被更新数据的元数据和所述被更新数据的版本信息;所述缓存,用于存储所述更新消息;所述接口,还用于将所述更新消息发送给子站点的缓存设备。本申请第九方本文档来自技高网
...

【技术保护点】
1.一种分布式缓存系统,其特征在于,包括:主站点和子站点,所述主站点和子站点均包括:缓存设备和消息队列服务器;所述主站点的缓存设备,用于当所述主站点的缓存设备中的数据被更新时,生成更新消息,并将所述更新消息发送给所述主站点的消息队列服务器,所述更新消息中包括被更新数据的元数据:所述主站点的消息队列服务器,用于通过消息路由的方式将所述更新消息发送给所述子站点的消息队列服务器;所述子站点的消息队列服务器,用于缓存所述更新消息;所述子站点的缓存设备,用于从所述子站点的消息队列服务器中读取所述更新消息,根据所述更新消息中的所述元数据清除所述子站点的缓存设备中的所述被更新数据。

【技术特征摘要】
1.一种分布式缓存系统,其特征在于,包括:主站点和子站点,所述主站点和子站点均包括:缓存设备和消息队列服务器;所述主站点的缓存设备,用于当所述主站点的缓存设备中的数据被更新时,生成更新消息,并将所述更新消息发送给所述主站点的消息队列服务器,所述更新消息中包括被更新数据的元数据:所述主站点的消息队列服务器,用于通过消息路由的方式将所述更新消息发送给所述子站点的消息队列服务器;所述子站点的消息队列服务器,用于缓存所述更新消息;所述子站点的缓存设备,用于从所述子站点的消息队列服务器中读取所述更新消息,根据所述更新消息中的所述元数据清除所述子站点的缓存设备中的所述被更新数据。2.根据权利要求1所述的系统,其特征在于,所述被更新数据的元数据中包括所述被更新数据的版本信息;所述子站点的缓存设备,还用于缓存所述被更新数据的版本信息。3.根据权利要求2所述的系统,其特征在于,所述子站点的缓存设备还用于:当接收到所述被更新数据的读取请求时,从所述子站点的数据库中读取所述被更新数据;判断从所述数据库中读取的所述被更新数据的版本信息与所述子站点的缓存设备中缓存的所述版本信息是否相同;当从所述数据库中读取的所述被更新数据的版本信息与所述子站点的缓存设备中缓存的所述版本信息相同时,缓存从所述数据库中读取的所述被更新数据。4.根据权利要求1-3任一项所述的系统,其特征在于,所述子站点还包括:消息监听设备,用于监听所述子站点的消息队列服务器中的消息,并将监听到的所述更新消息发送给所述子站点的缓存设备。5.一种缓存同步方法,其特征在于,所述方法应用在分布式缓存系统中,所述分布式缓存系统包括主站点和子站点,所述主站点和子站点均包括:缓存设备和消息队列服务器,所述方法包括:当所述主站点的缓存设备中的数据被更新时,所述主站点的缓存设备生成更新消息,所述更新消息中包括被更新数据的元数据;所述主站点的缓存设备将所述更新消息发送给所述主站点的消息队列服务器;所述主站点的消息队列服务器通过消息路由的方式将所述更新消息发送给所述子站点的消息队列服务器。6.根据权利要求5所述的方法,其特征在于,所述被更新数据的元数据中包括所述被更新数据的版本信息。7.一种缓存同步方法,其特征在于,所述方法应用在分布式缓存系统中,所述分布式缓存系统包括主站点和至少一个子站点,所述主站点和子站点均包括:缓存设备和消息队列服务器,所述方法包括:所述子站点的消息队列服务器接收主站点的消息队列服务器通过消息路由方式发送的更新消息,并缓存所述更新消息,所述更新消息中包括被更新数据的元数据:所述子站点的缓存设备从所述子站点的消息队列服务器中读取所述更新消息,根据所述被更新数据的元数据清除所述子站点的缓存设备中的所述被更新数据。8.根据权利要求7所述的方法,其特征在于,所述被更新数据的元数据中还包括所述被更新数据的版本信息,所述方法还包括:所述子站点的缓存设备缓存所述被更新数据的版本信息。9.根据权利要求8所述的方法,其特征在于,还包括:当接收到所述被更新数据的读取请求时,所述子站点的缓存设备从所述子站点的数据库中读取所述被更新数据;所述子站点的缓存设备判断从所述数据库中读取的所述被更新数据的版本信息与所述子站点的缓存设备中缓存的所述版本信息是否相同;当从所述数据库中读取的所述被更新数据的版本信息与所述子站点的缓存设备中缓存的所述版本信息相同时,所述子站点的缓存设备缓存从所述数据库中读取的所述被更新数据。10.根据权利要求7-9任一项所述的方法,其特征在于,所述子站点还包括消息监听设备,所述方法还包括:所述消息监听设备监听所述子站点的消息队列服务器中的消息,并将监听到的所述更新消息发送给所述子站点的缓存设备。11.一种缓存设备,其特征在于,包括缓存、接口和处理器,所述缓存、所述接口和所述处理器通信,其中,所述缓存,用于存储数据;所述处理器,用于当所述缓存中的数据被更新时,生成更新消息,所述更新消息中包括被更新数据的元数据和所述被更新数据的版本信息;所述接口,用于将所述更新消息发送给所述主站点的消息队列服务器。12.一种消息队列服务器,其特征在于,包...

【专利技术属性】
技术研发人员:耿湘勇蒋小明詹兴新
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东,44

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

1