一种缓存实时更新方法、装置、设备及存储介质制造方法及图纸

技术编号:37071231 阅读:9 留言:0更新日期:2023-03-29 19:48
本申请公开了一种缓存实时更新方法、装置、设备及存储介质,涉及系统缓存技术领域,该方法包括:基于客户端发送的针对本地缓存数据的更新指令,从数据库获取与本地缓存数据对应的最新数据,并利用最新数据进行自身的本地缓存数据更新操作,以得到更新后本地缓存数据;利用更新后本地缓存数据对Redis中的缓存数据进行更新,以得到更新后Redis缓存数据;利用信息中间件传递与更新后本地缓存数据对应的更新信息,以便第二节点通过信息中间件获取更新信息,并基于更新信息和更新后Redis缓存数据进行自身的本地缓存数据更新操作。可见,本申请通过第二节点消费信息中间件主题的方式更新本地缓存,解决了二级缓存方案中所存在的本地缓存不一致的问题。地缓存不一致的问题。地缓存不一致的问题。

【技术实现步骤摘要】
一种缓存实时更新方法、装置、设备及存储介质


[0001]本专利技术涉及系统缓存
,特别涉及一种缓存实时更新方法、装置、设备及存储介质。

技术介绍

[0002]在多级缓存设计方案中,一般用Redis作为分布式二级缓存,并且每个节点内都有一个基于程序内存的一级缓存。获取数据时,先从一级缓存中拿数据,如果获取不到,则去分布式二级缓存Redis中获取数据,如果也获取不到,则去数据库中获取数据,然后设置一二级缓存数据。而在多个节点使用同一个缓存数据时,如果一个节点修改了数据,而其他节点的本地缓存数据没有实时更新,现有的方案就是为本地的本地缓存设置一个很短的过期时间,等待过期时间一到,数据就会删除,此时再去Redis缓存中获取数据,就能拿到最新的数据。如果数据被修改了,会同步修改Redis缓存的数据,但是不同节点有各自的本地缓存数据,无法被同步修改,会导致其他节点的本地缓存数据成为了脏数据。针对脏数据的问题,现有的解决方案是一般为本地缓存数据增加一个很短的过期时间,时间一到,就可以从Redis缓存获取最新的数据,但是也不可避免的造成一定时间的数据不一致。

技术实现思路

[0003]有鉴于此,本专利技术的目的在于提供一种缓存实时更新方法、装置、设备及存储介质,能够有效解决二级缓存方案中所存在的本地缓存不一致的问题。其具体方案如下:
[0004]第一方面,本申请提供了一种缓存实时更新方法,应用于第一节点,包括:
[0005]基于客户端发送的针对本地缓存数据的更新指令,从数据库获取与所述本地缓存数据对应的最新数据,并利用所述最新数据进行自身的本地缓存数据更新操作,以得到更新后本地缓存数据;
[0006]利用所述更新后本地缓存数据对Redis中的缓存数据进行更新,以得到更新后Redis缓存数据;
[0007]利用信息中间件传递与所述更新后本地缓存数据对应的更新信息,以便第二节点通过所述信息中间件获取所述更新信息,并基于所述更新信息和所述更新后Redis缓存数据进行自身的本地缓存数据更新操作。
[0008]可选的,所述基于客户端发送的针对本地缓存数据的更新指令,从数据库获取与所述本地缓存数据对应的最新数据,并利用所述最新数据进行自身的本地缓存数据更新操作,以得到更新后本地缓存数据,包括:
[0009]接收客户端发送的针对本地缓存数据的更新指令,根据所述更新指令清除本地缓存数据,从数据库获取与所述更新指令对应的最新数据,并利用所述最新数据进行自身的本地缓存数据更新操作,以得到更新后本地缓存数据。
[0010]可选的,所述利用信息中间件传递与所述更新后本地缓存数据对应的更新信息,以便第二节点通过所述信息中间件获取所述更新信息之前,还包括:
[0011]向所述信息中间件的主题发布所述更新信息,以便所述第二节点通过所述信息中间件的主题获取所述更新信息。
[0012]可选的,所述第二节点通过所述信息中间件的主题获取所述更新信息,包括:
[0013]所述第二节点通过对所述信息中间件的主题进行异步消费的方式获取所述更新信息。
[0014]可选的,所述利用信息中间件传递与所述更新后本地缓存数据对应的更新信息,以便第二节点通过所述信息中间件获取所述更新信息,并基于所述更新信息和所述更新后Redis缓存数据进行自身的本地缓存数据更新操作,包括:
[0015]向所述信息中间件的主题发送所述本地缓存数据中发生数据更新的目标数据的信息,以便于所述第二节点删除自身的本地缓存数据中与所述目标数据的信息对应的旧数据,并从更新后Redis缓存数据中获取与所述目标数据的信息对应的新数据,以完成自身的本地缓存数据更新操作。
[0016]第二方面,本申请提供了一种缓存实时更新方法,应用于第二节点,包括:
[0017]获取第一节点利用信息中间件传递的更新信息;所述更新信息为与所述第一节点的更新后本地缓存数据对应的信息,所述第一节点的更新后本地缓存数据为所述第一节点基于客户端发送的针对本地缓存数据的更新指令,从数据库获取与所述本地缓存数据对应的最新数据,并利用所述最新数据进行自身的本地缓存数据更新操作后得到的数据;
[0018]基于所述更新信息和更新后Redis缓存数据进行自身的本地缓存数据更新操作;所述更新后Redis缓存数据为所述第一节点利用所述更新后本地缓存数据对Redis中的缓存数据进行更新后得到的数据。
[0019]第三方面,本申请提供了一种缓存实时更新装置,应用于第一节点,包括:
[0020]数据获取模块,用于基于客户端发送的针对本地缓存数据的更新指令,从数据库获取与所述本地缓存数据对应的最新数据,并利用所述最新数据进行自身的本地缓存数据更新操作,以得到更新后本地缓存数据;
[0021]数据更新模块,用于利用所述更新后本地缓存数据对Redis中的缓存数据进行更新,以得到更新后Redis缓存数据;
[0022]信息传递模块,用于利用信息中间件传递与所述更新后本地缓存数据对应的更新信息,以便第二节点通过所述信息中间件获取所述更新信息,并基于所述更新信息和所述更新后Redis缓存数据进行自身的本地缓存数据更新操作。
[0023]第四方面,本申请提供了一种缓存实时更新装置,应用于第二节点,包括:
[0024]信息获取模块,用于获取第一节点利用信息中间件传递的更新信息;所述更新信息为与所述第一节点的更新后本地缓存数据对应的信息,所述第一节点的更新后本地缓存数据为所述第一节点基于客户端发送的针对本地缓存数据的更新指令,从数据库获取与所述本地缓存数据对应的最新数据,并利用所述最新数据进行自身的本地缓存数据更新操作后得到的数据;
[0025]数据更新模块,用于基于所述更新信息和更新后Redis缓存数据进行自身的本地缓存数据更新操作;所述更新后Redis缓存数据为所述第一节点利用所述更新后本地缓存数据对Redis中的缓存数据进行更新后得到的数据。
[0026]第五方面,本申请提供了一种电子设备,所述电子设备包括处理器和存储器;其
中,所述存储器用于存储计算机程序,所述计算机程序由所述处理器加载并执行以实现前述缓存实时更新方法。
[0027]第六方面,本申请提供了一种计算机可读存储介质,所述计算机程序被处理器执行时实现前述的缓存实时更新方法。
[0028]本申请在进行缓存实时更新时,先基于客户端发送的针对本地缓存数据的更新指令,从数据库获取与所述本地缓存数据对应的最新数据,并利用所述最新数据进行自身的本地缓存数据更新操作,以得到更新后本地缓存数据;利用所述更新后本地缓存数据对Redis中的缓存数据进行更新,以得到更新后Redis缓存数据;最后利用信息中间件传递与所述更新后本地缓存数据对应的更新信息,以便第二节点通过所述信息中间件获取所述更新信息,并基于所述更新信息和所述更新后Redis缓存数据进行自身的本地缓存数据更新操作。可见,本申请通过使用第二节点消费信息中间件主题的方式更新本地缓存,当某个节点的本本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种缓存实时更新方法,其特征在于,应用于第一节点,包括:基于客户端发送的针对本地缓存数据的更新指令,从数据库获取与所述本地缓存数据对应的最新数据,并利用所述最新数据进行自身的本地缓存数据更新操作,以得到更新后本地缓存数据;利用所述更新后本地缓存数据对Redis中的缓存数据进行更新,以得到更新后Redis缓存数据;利用信息中间件传递与所述更新后本地缓存数据对应的更新信息,以便第二节点通过所述信息中间件获取所述更新信息,并基于所述更新信息和所述更新后Redis缓存数据进行自身的本地缓存数据更新操作。2.根据权利要求1所述的缓存实时更新方法,其特征在于,所述基于客户端发送的针对本地缓存数据的更新指令,从数据库获取与所述本地缓存数据对应的最新数据,并利用所述最新数据进行自身的本地缓存数据更新操作,以得到更新后本地缓存数据,包括:接收客户端发送的针对本地缓存数据的更新指令,根据所述更新指令清除本地缓存数据,从数据库获取与所述更新指令对应的最新数据,并利用所述最新数据进行自身的本地缓存数据更新操作,以得到更新后本地缓存数据。3.根据权利要求1所述的缓存实时更新方法,其特征在于,所述利用信息中间件传递与所述更新后本地缓存数据对应的更新信息,以便第二节点通过所述信息中间件获取所述更新信息之前,还包括:向所述信息中间件的主题发布所述更新信息,以便所述第二节点通过所述信息中间件的主题获取所述更新信息。4.根据权利要求3所述的缓存实时更新方法,其特征在于,所述第二节点通过所述信息中间件的主题获取所述更新信息,包括:所述第二节点通过对所述信息中间件的主题进行异步消费的方式获取所述更新信息。5.根据权利要求3或4所述的缓存实时更新方法,其特征在于,所述利用信息中间件传递与所述更新后本地缓存数据对应的更新信息,以便第二节点通过所述信息中间件获取所述更新信息,并基于所述更新信息和所述更新后Redis缓存数据进行自身的本地缓存数据更新操作,包括:向所述信息中间件的主题发送所述本地缓存数据中发生数据更新的目标数据的信息,以便于所述第二节点删除自身的本地缓存数据中与所述目标数据的信息对应的旧数据,并从更新后Redis缓存数据中获取与所述目标数据的信息对应的新数据,以完成自身的本地缓存数据更新操作。6.一种缓存实时更新方法,其特征在于,应用于第二节点...

【专利技术属性】
技术研发人员:章国传周史雨
申请(专利权)人:杭州安恒车联网安全技术有限公司
类型:发明
国别省市:

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

1