缓存数据刷新方法及分布式系统技术方案

技术编号:27935400 阅读:18 留言:0更新日期:2021-04-02 14:15
本说明书实施例公开了一种缓存数据刷新方法及分布式系统,对本地缓存使用两级哈希表结构进行数据存储。第一级哈希表中以类型标识作为键值,以第二级数据表的键值作为数据值;第二级哈希表的键值基于数据记录在数据库中的主键生成,第二级哈希表的数据值对应缓存的单条数据记录。分布式缓存采用哈希槽结构进行数据存储,哈希槽内数据值的键值基于类型标识以及数据记录在数据库中的主键生成,数据值对应缓存的单条数据记录,哈希槽内数据集合的标记字段基于键值中的类型标识生成,以使相同类型标识下的键值及数据记录存储至同一数据集合中。基于上述缓存数据存储结构,可以大幅提高各级缓存数据刷新的效率以及一致性。

【技术实现步骤摘要】
缓存数据刷新方法及分布式系统
本说明书涉及数据处理
,特别地,涉及一种缓存数据刷新方法及分布式系统。
技术介绍
目前主流的分布式系统都会用到缓存功能,缓存会重复访问的数据,提高系统响应速度,并且可以减轻系统的负载。当前金融机构通常采用本地缓存、分布式缓存两级缓存,其中,本地缓存、分布式缓存的优先级依次降低。数据库为业务系统以及各级缓存提供原始数据。如每台服务器(AP)都可以配置本地缓存,该缓存优先级最高,服务器执行数据处理时优先从本地缓存查询数据,存在则直接返回结果。如果本地缓存不存在时,则可以进一步从分布式缓存中查询,如果还是没有,则直接查询数据库。如果从数据库中查询到数据,则可以将查询到的数据分别写入本地缓存和分布式缓存。但目前常用的多级缓存系统只能实现单条数据的缓存刷新,采用该目前的缓存刷新方式,在业务系统自身执行数据刷新或者与其他业务系统进行数据同步时,需要比较新旧数据,找出增删改了哪些数据,然后逐一调用接口,刷新变化的参数,数据刷新操作较为复杂繁琐,且易出现漏刷数据或者错误刷新的情况。同时,分布式系统各节点处理的数据量非常庞大,使得新旧数据的比较需要消耗较长的时间,且逐一刷新数据也需要消耗较长的时间。因此,目前亟需一种更加简单高效的数据刷新方法。
技术实现思路
本说明书实施例的目的在于提供一种缓存数据刷新方法及分布式系统,可以大幅提高分布式系统中各级缓存数据刷新的效率以及一致性。本说明书提供一种缓存数据刷新方法及分布式系统是包括如下方式实现的:一种缓存数据刷新方法,应用于分布式系统,所述分布式系统包括数据库、分布式缓存、通知中心以及至少一个应用服务器。所述应用服务器中布设有本地缓存,所述应用服务器与所述通知中心建立通信连接。其中,所述本地缓存采用两级哈希表结构进行数据存储;第一级哈希表中以类型标识作为键值,以第二级数据表的键值作为数据值;第二级哈希表的键值基于数据记录在数据库中的主键生成。分布式缓存采用哈希槽结构进行数据存储;其中,哈希槽内数据值的键值基于类型标识以及数据记录在数据库中的主键生成,哈希槽内数据集合的标记字段基于键值中的类型标识生成,以使相同类型标识下的键值及数据记录存储至同一数据集合中。所述方法包括如下步骤。所述数据提供方在确定对数据库的目标数据记录更新操作成功后,向所述分布式缓存发送数据更新指令,所述数据更新指令包括目标数据记录以及所述目标数据记录的目标类型标识、在数据库中的目标主键,以使所述分布式缓存将所述目标类型标识以及目标主键所对应的数据记录更新为所述目标数据记录。以及,所述数据提供方向通知中心发送数据更新通知,所述数据更新通知包括所述目标数据记录的目标类型标识、在数据库中的目标主键;以使各应用服务器在接收到通知中心的消息后,从所述分布式缓存中读取所述目标类型标识以及目标主键所对应的数据记录,并基于读取的数据记录对本地缓存中所述目标类型标识以及目标主键对应的数据记录进行更新处理。本说明书提供的所述方法的另一些实施例中,所述数据提供方通过异步的方式向通知中心发送数据更新通知;并在接收到通知中心反馈的消息广播成功响应后,向所述分布式缓存发送数据更新指令。另一方面,本说明书实施例还提供一种缓存数据刷新方法,应用于分布式系统,所述分布式系统包括数据库、分布式缓存、通知中心以及至少一个应用服务器。所述应用服务器中布设有本地缓存,所述应用服务器与所述通知中心建立通信连接。其中,所述本地缓存采用两级哈希表结构进行数据存储;第一级哈希表中以类型标识作为键值,以第二级数据表的键值作为数据值;第二级数据表的键值基于数据记录在数据库中的主键生成。分布式缓存采用哈希槽结构进行数据存储;其中,哈希槽内数据值的键值基于类型标识以及数据记录在数据库中的主键生成,哈希槽内数据集合的标记字段基于键值中的类型标识生成,以使相同类型标识下的键值及数据记录存储至同一数据集合中。所述方法包括如下步骤。所述数据提供方在确定对数据库在目标类型标识下的数据记录更新操作成功后,向所述分布式缓存发送数据清空指令,所述数据清空指令包括所述目标类型标识,以使所述分布式缓存将所述目标类型标识对应的数据记录清空。以及,所述数据提供方向通知中心发送数据清空通知,所述数据清空通知包括所述目标类型标识;以使各应用服务器在接收到通知中心的消息后,将所述目标类型标识下的数据记录清空。本说明书提供的所述方法的另一些实施例中,所述方法还包括如下步骤。应用服务器在基于数据查询请求在从本地缓存以及分布式缓存中读取目标数据记录,而目标数据记录不存在的情况下,从所述数据库中读取所述目标数据记录;以及在确认从所述数据库中成功读取所述目标数据记录的情况下,以该应用服务器作为数据刷新服务器。相应的,所述数据刷新服务器向所述分布式缓存发送数据更新指令,所述数据更新指令包括目标数据记录以及所述目标数据记录的目标类型标识、在数据库中的目标主键;以使所述分布式缓存将所述目标类型标识以及目标主键所对应的数据记录更新为所述目标数据记录。本说明书提供的所述方法的另一些实施例中,所述方法还包括,所述数据刷新服务器向通知中心发送数据更新通知,所述数据更新通知包括所述目标数据记录的目标类型标识、在数据库中的目标主键,以使各应用服务器在接收到通知中心的消息后,从所述分布式缓存中读取所述目标类型标识以及目标主键所对应的数据记录,并基于读取的数据记录对本地缓存中所述目标类型标识以及目标主键对应的数据记录进行更新处理。另一方面,本说明书实施例还提供一种分布式系统,所述分布式系统包括数据库、分布式缓存、通知中心以及至少一个应用服务器。所述应用服务器中布设有本地缓存,所述应用服务器与所述通知中心建立通信连接。其中,所述本地缓存采用两级哈希表结构进行数据存储;第一级哈希表中以类型标识作为键值,以第二级数据表的键值作为数据值;第二级数据表的键值基于数据记录在数据库中的主键生成。分布式缓存采用哈希槽结构进行数据存储;其中,哈希槽内数据值的键值基于类型标识以及数据记录在数据库中的主键生成,哈希槽内数据集合的标记字段基于键值中的类型标识生成,以使相同类型标识下的键值及数据记录存储至同一数据集合中。本说明书提供的所述系统的另一些实施例中,所述数据提供方用于在确定对数据库的目标数据记录更新操作成功后,向所述分布式缓存发送数据更新指令,所述数据更新指令包括目标数据记录以及所述目标数据记录的目标类型标识、在数据库中的目标主键。所述分布式缓存用于将所述目标类型标识以及目标主键所对应的数据记录更新为所述目标数据记录。本说明书提供的所述系统的另一些实施例中,所述数据提供方用于向通知中心发送数据更新通知,所述数据更新通知包括所述目标数据记录的目标类型标识、在数据库中的目标主键。所述应用服务器用于在接收到通知中心的消息后,从所述分布式缓存中读取所述目标类型标识以及目标主键所对应的数据记录,并基于读取的数据记录对本地缓存中所述目标类型标识以及目标主键对应的数据记录进行更新处理。本说明书提供的所述系统的另一些实施例中,所述数据提供方用于通过异步的方式向本文档来自技高网...

【技术保护点】
1.一种缓存数据刷新方法,其特征在于,应用于分布式系统,所述分布式系统包括数据库、分布式缓存、通知中心以及至少一个应用服务器;所述应用服务器中布设有本地缓存,所述应用服务器与所述通知中心建立通信连接;其中,所述本地缓存采用两级哈希表结构进行数据存储;第一级哈希表中以类型标识作为键值,以第二级数据表的键值作为数据值;第二级哈希表的键值基于数据记录在数据库中的主键生成;分布式缓存采用哈希槽结构进行数据存储;其中,哈希槽内数据值的键值基于类型标识以及数据记录在数据库中的主键生成,哈希槽内数据集合的标记字段基于键值中的类型标识生成,以使相同类型标识下的键值及数据记录存储至同一数据集合中;所述方法包括:/n所述数据提供方在确定对数据库的目标数据记录更新操作成功后,向所述分布式缓存发送数据更新指令,所述数据更新指令包括目标数据记录以及所述目标数据记录的目标类型标识、在数据库中的目标主键,以使所述分布式缓存将所述目标类型标识以及目标主键所对应的数据记录更新为所述目标数据记录;以及,/n所述数据提供方向通知中心发送数据更新通知,所述数据更新通知包括所述目标数据记录的目标类型标识、在数据库中的目标主键;以使各应用服务器在接收到通知中心的消息后,从所述分布式缓存中读取所述目标类型标识以及目标主键所对应的数据记录,并基于读取的数据记录对本地缓存中所述目标类型标识以及目标主键对应的数据记录进行更新处理。/n...

【技术特征摘要】
1.一种缓存数据刷新方法,其特征在于,应用于分布式系统,所述分布式系统包括数据库、分布式缓存、通知中心以及至少一个应用服务器;所述应用服务器中布设有本地缓存,所述应用服务器与所述通知中心建立通信连接;其中,所述本地缓存采用两级哈希表结构进行数据存储;第一级哈希表中以类型标识作为键值,以第二级数据表的键值作为数据值;第二级哈希表的键值基于数据记录在数据库中的主键生成;分布式缓存采用哈希槽结构进行数据存储;其中,哈希槽内数据值的键值基于类型标识以及数据记录在数据库中的主键生成,哈希槽内数据集合的标记字段基于键值中的类型标识生成,以使相同类型标识下的键值及数据记录存储至同一数据集合中;所述方法包括:
所述数据提供方在确定对数据库的目标数据记录更新操作成功后,向所述分布式缓存发送数据更新指令,所述数据更新指令包括目标数据记录以及所述目标数据记录的目标类型标识、在数据库中的目标主键,以使所述分布式缓存将所述目标类型标识以及目标主键所对应的数据记录更新为所述目标数据记录;以及,
所述数据提供方向通知中心发送数据更新通知,所述数据更新通知包括所述目标数据记录的目标类型标识、在数据库中的目标主键;以使各应用服务器在接收到通知中心的消息后,从所述分布式缓存中读取所述目标类型标识以及目标主键所对应的数据记录,并基于读取的数据记录对本地缓存中所述目标类型标识以及目标主键对应的数据记录进行更新处理。


2.根据权利要求1所述的方法,其特征在于,所述数据提供方通过异步的方式向通知中心发送数据更新通知;并在接收到通知中心反馈的消息广播成功响应后,向所述分布式缓存发送数据更新指令。


3.一种缓存数据刷新方法,其特征在于,应用于分布式系统,所述分布式系统包括数据库、分布式缓存、通知中心以及至少一个应用服务器;所述应用服务器中布设有本地缓存,所述应用服务器与所述通知中心建立通信连接;其中,所述本地缓存采用两级哈希表结构进行数据存储;第一级哈希表中以类型标识作为键值,以第二级数据表的键值作为数据值;第二级数据表的键值基于数据记录在数据库中的主键生成;分布式缓存采用哈希槽结构进行数据存储;其中,哈希槽内数据值的键值基于类型标识以及数据记录在数据库中的主键生成,哈希槽内数据集合的标记字段基于键值中的类型标识生成,以使相同类型标识下的键值及数据记录存储至同一数据集合中;所述方法包括:
所述数据提供方在确定对数据库在目标类型标识下的数据记录更新操作成功后,向所述分布式缓存发送数据清空指令,所述数据清空指令包括所述目标类型标识,以使所述分布式缓存将所述目标类型标识对应的数据记录清空;以及,
所述数据提供方向通知中心发送数据清空通知,所述数据清空通知包括所述目标类型标识;以使各应用服务器在接收到通知中心的消息后,将所述目标类型标识下的数据记录清空。


4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
应用服务器在基于数据查询请求在从本地缓存以及分布式缓存中读取目标数据记录,而目标数据记录不存在的情况下,从所述数据库中读取所述目标数据记录;以及在确认从所述数据库中成功读取所述目标数据记录的情况下,以该应用服务器作为数据刷新服务器;
相应的,所述数据刷新服务器向所述分布式缓存发送数据更新指令,所述数据更新指令包括目标数据记录以及所述目标数据记录的目标类型标识、在数据库中的目标主键;以使所述分布式缓存将所述目标类型标识以及目标主键所对应的数据记录更新为所述目标数据记录。


5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
所述数据刷新服务器向通知中心发送数据更新通知,所述数据更新通知包括所述目标数据记录的目标类型标识、在数据库中的目标主键,以使各应用服务器在接收到通知中心的消息后,从所述分布式缓存中读取所述目标类型标识以及目标主键所对应的数据记录,...

【专利技术属性】
技术研发人员:余佳齐孙健
申请(专利权)人:中国建设银行股份有限公司
类型:发明
国别省市:北京;11

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

1