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

技术编号:38469707 阅读:17 留言:0更新日期:2023-08-11 14:46
本申请在存储技术领域,公开了一种缓存更新方法、装置、设备及可读存储介质,该方法包括:接收数据存取请求,并确定请求数据;与其他缓存主机互相同步是否已存储请求数据的消息;若本地缓存与其他缓存主机均未存储请求数据,在仲裁序号与轮值序号一致的情况下,应答数据存取请求,并在完成应答后,通知其他缓存主机更新轮值序号;在仲裁序号与轮值序号不一致的情况下,则在其他缓存主机通知更新轮值序号的情况下,更新轮值序号。在本申请中,通过轮值序号和仲裁序号,可以使得各个缓存主机轮番对未存储有相应请求数据的数据存取请求进行应答,使得所有缓存主机公平的处理数据存取请求,并可使得主机间不重复存储相同的数据,不浪费存储空间。储空间。储空间。

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


[0001]本申请涉及存储
,特别是涉及一种缓存更新方法、装置、设备及可读存储介质。

技术介绍

[0002]缓存,可位于速度相差较大的两种硬件之间,即用于协调两者数据传输速度差异的存储设备,使用缓存可以有效提升数据访问效率。
[0003]缓存的存储大小是有限的,缓存中的数据内容也需要根据实际需求进行不断的更新。以分布式缓存Redis(一种存储系统)为例,其缓存内的数据更新方案中,基本的主从复制模式存在效能不足,规格较小等缺点,进一步改良的缓存内的数据更新方案为哨兵模式,但哨兵模式最大缺点为哨兵模式下每台Redis缓存服务器都存储相同的数据,很浪费内存空间;此外,缓存内的数据更新方案中的Cluster(簇)模式虽然可进一步改进,但是Cluster(簇)模式本身很复杂,进一步改进之后,仍然存在方案复杂的问题。
[0004]综上所述,如何有效地解决缓存内数据更新等问题,是目前本领域技术人员急需解决的技术问题。

技术实现思路

[0005]本申请的目的是提供一种缓存更新方法、装置、设备及可读存储介质,引入了分散式仲裁轮询机制,所有缓存主机公平的处理数据存取请求,可使得主机间不重复存储相同的数据,不浪费存储空间。
[0006]为解决上述技术问题,本申请提供如下技术方案:一种缓存更新方法,包括:接收数据存取请求,并确定请求数据;与其他缓存主机互相同步是否已存储所述请求数据的消息;若本地缓存与其他缓存主机均未存储所述请求数据,在仲裁序号与轮值序号一致的情况下,应答所述数据存取请求,并在完成应答后,通知其他缓存主机更新所述轮值序号;在所述仲裁序号与所述轮值序号不一致的情况下,则在其他缓存主机通知更新所述轮值序号的情况下,更新所述轮值序号。
[0007]优选地,还包括:在缓存系统中的缓存主机发生数量变动的情况下,调整所述仲裁序号和所述轮值序号。
[0008]优选地,调整所述仲裁序号和所述轮值序号,包括:初始化所述仲裁序号;其中,所述仲裁序号与其他缓存主机的仲裁序号互异;初始化所述轮值序号,并设置所述轮值序号的取值范围;其中,所述轮值序号与其他缓存主机的保持数据同步,所述取值范围与全部缓存主机的总数相对应。
[0009]优选地,所述设置所述轮值序号的取值范围,包括:
若所述缓存主机的总数为N,则设置所述轮值序号的取值范围为0至N

1。
[0010]优选地,调整所述仲裁序号和所述轮值序号,包括:初始化所述仲裁序号;其中,所述仲裁序号与备份缓存主机的仲裁序号相同,与其他缓存主机的仲裁序号互异;初始化所述轮值序号,并设置所述轮值序号的取值范围;其中,所述轮值序号与其他缓存主机的保持数据同步,所述取值范围与全部缓存主机的总数和备份系数相对应。
[0011]优选地,设置所述轮值序号的取值范围,包括:若所述缓存主机的总数为N,备份系数为M,则设置所述轮值序号的取值范围为0至N/M

1。
[0012]优选地,还包括:与所述备份缓存主机同步存储数据。
[0013]优选地,在缓存系统中的缓存主机发生数量变动的情况下,调整所述仲裁序号和所述轮值序号,包括:在所述缓存系统中新增缓存主机的情况下,为新增缓存主机分配仲裁序号;若所述新增缓存主机非备份缓存主机,则对所述轮值序号的取值范围进行加1。
[0014]优选地,为新增缓存主机分配仲裁序号,包括:若所述新增缓存主机非备份缓存主机,则为所述新增缓存主机分配与其他缓存主机的仲裁序号均不同的仲裁序号;若所述新增缓存主机为备份缓存主机,则为所述新增缓存主机分配与备份对应缓存主机的仲裁序号。
[0015]优选地,与其他缓存主机互相同步是否已存储所述请求数据的消息,包括:在本地缓存中查询所述请求数据,得到本地是否存储所述请求数据的查询结果;将所述查询结果发送给其他缓存主机,并接收其他缓存主机发送的查询结果。
[0016]优选地,包括:若本地缓存有所述请求数据,则对所述数据存取请求进行应答,并告知其他缓存主机。
[0017]优选地,对所述数据存取请求进行应答,包括:对所述请求数据进行读取、更新或删除。
[0018]优选地,对所述请求数据进行读取、更新或删除之后,还包括:对所述请求数据进行更新或删除后,若具有对应的备份缓存主机,则通知所述备份缓存主机同步所述请求数据。
[0019]优选地,包括:若其他缓存主机存储有所述请求数据,则等待其他缓存主机应答所述数据存取请求。
[0020]优选地,应答所述数据存取请求,包括:若所述数据存取请求为数据存入请求,则在缓存中写入所述请求数据。
[0021]优选地,应答所述数据存取请求,包括:若所述数据存取请求为数据查看、更新或删除请求,则反馈无数据。
[0022]优选地,所述通知其他缓存主机更新所述轮值序号,包括:
对所述轮值序号加1,并通知其他缓存主机更新所述轮值序号。
[0023]优选地,对所述轮值序号加1,并通知其他缓存主机更新所述轮值序号,包括:对所述轮值序号加1,并判断当前轮值序号是否超出轮值序号的取值范围;如果是,则初始化所述轮值序号为初始值,并通知其他缓存主机将所述轮值序号更新为所述初始值;如果否,则通知其他缓存主机对所述轮值序号加1。
[0024]优选地,在仲裁序号与轮值序号一致的情况下,应答所述数据存取请求,包括:在所述仲裁序号与轮值序号一致的情况下,与仲裁序号相同的其他缓存主机分别应答所述数据存取请求。
[0025]优选地,通知其他缓存主机更新所述轮值序号,包括:与进行应答的其他缓存主机进行协商,从缓存系统中的多个缓存主机中确定出本机需通知的缓存主机;向本机需通知的缓存主机发出更新所述轮值序号的通知。
[0026]一种缓存更新装置,包括:请求解析模块,用于接收数据存取请求,并确定请求数据;协商通信模块,用于与其他缓存主机互相同步是否已存储所述请求数据的消息;应答模块,用于若本地缓存与其他缓存主机均未存储所述请求数据,在仲裁序号与轮值序号一致的情况下,应答所述数据存取请求,并在完成应答后,通知其他缓存主机更新所述轮值序号;轮值序号更新模块,用于若本地缓存与其他缓存主机均未存储所述请求数据,在所述仲裁序号与所述轮值序号不一致的情况下,则在其他缓存主机通知更新所述轮值序号的情况下,更新所述轮值序号。
[0027]一种电子设备,包括:存储器,用于存储计算机程序;处理器,用于执行所述计算机程序时实现上述缓存更新方法的步骤。
[0028]一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述缓存更新方法的步骤。
[0029]应用本申请实施例所提供的方法,接收数据存取请求,并确定请求数据;与其他缓存主机互相同步是否已存储请求数据的消息;若本地缓存与其他缓存主机均未存储请求数据,在仲裁序号与轮值序号一致的情况下,应答数据存取请求,并在完成应答后,通知其他缓存主本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种缓存更新方法,其特征在于,包括:接收数据存取请求,并确定请求数据;与其他缓存主机互相同步是否已存储所述请求数据的消息;若本地缓存与其他缓存主机均未存储所述请求数据,在仲裁序号与轮值序号一致的情况下,应答所述数据存取请求,并在完成应答后,通知其他缓存主机更新所述轮值序号;在所述仲裁序号与所述轮值序号不一致的情况下,则在其他缓存主机通知更新所述轮值序号的情况下,更新所述轮值序号。2.根据权利要求1所述的缓存更新方法,其特征在于,还包括:在缓存系统中的缓存主机发生数量变动的情况下,调整所述仲裁序号和所述轮值序号。3.根据权利要求2所述的缓存更新方法,其特征在于,调整所述仲裁序号和所述轮值序号,包括:初始化所述仲裁序号;其中,所述仲裁序号与其他缓存主机的仲裁序号互异;初始化所述轮值序号,并设置所述轮值序号的取值范围;其中,所述轮值序号与其他缓存主机的保持数据同步,所述取值范围与全部缓存主机的总数相对应。4.根据权利要求3所述的缓存更新方法,其特征在于,所述设置所述轮值序号的取值范围,包括:若所述缓存主机的总数为N,则设置所述轮值序号的取值范围为0至N

1。5.根据权利要求2所述的缓存更新方法,其特征在于,调整所述仲裁序号和所述轮值序号,包括:初始化所述仲裁序号;其中,所述仲裁序号与备份缓存主机的仲裁序号相同,与其他缓存主机的仲裁序号互异;初始化所述轮值序号,并设置所述轮值序号的取值范围;其中,所述轮值序号与其他缓存主机的保持数据同步,所述取值范围与全部缓存主机的总数和备份系数相对应。6.根据权利要求5所述的缓存更新方法,其特征在于,设置所述轮值序号的取值范围,包括:若所述缓存主机的总数为N,备份系数为M,则设置所述轮值序号的取值范围为0至N/M

1。7.根据权利要求5所述的缓存更新方法,其特征在于,还包括:与所述备份缓存主机同步存储数据。8.根据权利要求2所述的缓存更新方法,其特征在于,在缓存系统中的缓存主机发生数量变动的情况下,调整所述仲裁序号和所述轮值序号,包括:在所述缓存系统中新增缓存主机的情况下,为新增缓存主机分配仲裁序号;若所述新增缓存主机非备份缓存主机,则对所述轮值序号的取值范围进行加1。9.根据权利要求8所述的缓存更新方法,其特征在于,为新增缓存主机分配仲裁序号,包括:若所述新增缓存主机非备份缓存主机,则为所述新增缓存主机分配与其他缓存主机的仲裁序号均不同的仲裁序号;若所述新增缓存主机为备份缓存主机,则为所述新增缓存主机分配与备份对应缓存主
机的仲裁序号。10.根据权利要求1所述的缓存更新方法,其特征在于,与其他缓存主机互相同步是否已存储所述请求数据的消息,包括:在本地缓存中查询所述请求数据,得到本地是否存储所述请求数据的查询结果;将所述查询结果发送给其他缓存主机,并接收其他缓存主机发送的查询结果。11.根据权利要求1所述的缓存更新方法,其特征在于,包括:若本地缓存有所述请求数据,则对所述数据存取请...

【专利技术属性】
技术研发人员:蔡志恺
申请(专利权)人:苏州浪潮智能科技有限公司
类型:发明
国别省市:

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

1