数据缓存方法及装置制造方法及图纸

技术编号:33629764 阅读:10 留言:0更新日期:2022-06-02 01:31
本发明专利技术提供一种数据缓存方法及装置,方法包括:第一应用向目标缓存设备发送数据读取请求;数据读取请求中包括第一键;第一应用接收目标缓存设备返回的第一响应;第一响应中包括:第一指示信息、第二指示信息及缓存数据;第一指示信息用于指示缓存数据的状态信息;第二指示信息用于指示缓存数据的版本信息;当缓存数据为空值,或者当缓存数据为非空值且第一指示信息指示缓存数据为无效状态时,第一应用从数据源设备中读取第一键对应的第一数据;确定第一数据的状态信息和版本信息;将第一键、第一数据及第一数据的状态信息和版本信息写入目标缓存设备。本发明专利技术通过为数据设置状态信息和版本信息,确保了缓存写入和数据源写入的数据的一致性。据的一致性。据的一致性。

【技术实现步骤摘要】
数据缓存方法及装置


[0001]本专利技术涉及云计算
,尤其涉及一种数据缓存方法及装置。

技术介绍

[0002]数据缓存技术是一种旨在通过将经常访问的数据临时复制到靠近应用程序的快速存储中来提高系统的性能和可伸缩性的常用技术,主要用于高并发大量读请求的业务场景。
[0003]在相关技术中,旁路模式基于缓存性能较好及实现简单的特点被广泛使用。具体的,在旁路模式下响应读请求时先从缓存中读取数据,若缓存命中则直接返回数据;若缓存未命中则改从数据源读取数据并将数据写入缓存;响应写请求时,直接写入数据到数据源后再删除缓存中的数据。
[0004]然而,由于需要同时维护缓存和数据源,当写请求更新数据源并删除缓存后,一旦存在之前的读请求因为网络延迟等问题从数据源读取旧数据后进行重新缓存数据,导致存在缓存写入和数据源写入的数据不一致的问题,即双写一致性的问题。

技术实现思路

[0005]本专利技术提供一种数据缓存方法及装置,用以解决现有技术中存在缓存写入和数据源写入的数据不一致的缺陷,以确保缓存写入和数据源写入的数据的一致性。
[0006]第一方面,本专利技术提供一种数据缓存方法,应用于应用终端,所述方法包括:
[0007]第一应用向目标缓存设备发送数据读取请求;其中,所述数据读取请求中包括第一键;
[0008]所述第一应用接收所述目标缓存设备返回的第一响应;其中,所述第一响应中包括:第一指示信息、第二指示信息及缓存数据;所述第一指示信息用于指示所述缓存数据的状态信息;所述第二指示信息用于指示所述缓存数据的版本信息;
[0009]当所述缓存数据为空值,或者当所述缓存数据为非空值且所述第一指示信息指示所述缓存数据为无效状态时,所述第一应用从数据源设备中读取所述第一键对应的第一数据;确定所述第一数据的状态信息和版本信息;将所述第一键、所述第一数据及所述第一数据的状态信息和版本信息写入所述目标缓存设备。
[0010]根据本专利技术提供的一种数据缓存方法,所述确定所述第一数据的状态信息和版本信息,包括:
[0011]在所述第一数据为空值的情况下,确定所述第一数据的状态信息为不存在状态;或者,在所述第一数据为非空值的情况下,确定所述第一数据的状态信息为存在状态。
[0012]在所述缓存数据为空值的情况下,确定所述第一数据的版本信息为无效值;或者,在所述缓存数据为非空值且所述第一指示信息指示所述缓存数据为无效状态的情况下,根据所述第二指示信息指示的所述缓存数据的版本信息,确定所述第一数据的版本信息。
[0013]根据本专利技术提供的一种数据缓存方法,所述方法还包括:
[0014]当所述缓存数据为非空值,且所述第一指示信息指示所述缓存数据为存在状态时,确定所述第一键对应的第一数据为所述缓存数据;或者,
[0015]当所述缓存数据为非空值,且所述第一指示信息指示所述缓存数据为不存在状态时,确定所述目标缓存设备和所述数据源设备中均没有所述第一键对应的第一数据。
[0016]第二方面,本专利技术提供一种数据缓存方法,应用于目标缓存设备,所述方法包括:
[0017]接收第一应用发送的数据更新请求,所述数据更新请求中包括第一键和第一键对应的第一指示信息、第二指示信息以及第一数据;
[0018]当所述目标缓存设备中不存在所述第一键,且所述第二指示信息指示所述第一数据的版本信息为无效值时,将所述第一数据写入所述目标缓存设备,确定所述第一数据在所述目标缓存设备中对应的版本信息为初始版本,以及根据所述第一指示信息确定所述第一数据在所述目标缓存设备中对应的状态信息;
[0019]当所述目标缓存设备中存在所述第一键,且所述第一键在所述目标缓存设备中对应的版本信息与所述第一数据的版本信息相同时,将所述第一数据写入所述目标缓存设备,更新所述第一数据在所述目标缓存设备中的版本信息,以及根据所述第一指示信息确定所述第一数据在所述目标缓存设备中对应的状态信息。
[0020]根据本专利技术提供一种数据缓存方法,所述方法还包括:
[0021]接收第二应用发送的数据淘汰请求,所述数据淘汰请求中包括第二键;
[0022]当所述目标缓存设备中存在所述第二键时,更新所述目标缓存设备中所述第二键对应的版本信息;或者,当所述目标缓存设备中不存在所述第二键时,在所述目标缓存设备中建立所述第二键,确定所述第二键对应的版本信息为初始版本;
[0023]更新所述第二键对应的状态信息为无效状态。
[0024]根据本专利技术提供一种数据缓存方法,所述方法还包括:
[0025]为所述第一键,设置第一最大生存时长。
[0026]根据本专利技术提供一种数据缓存方法,所述方法还包括:
[0027]为所述第二键,设置第二最大生存时长。
[0028]第三方面,本专利技术还提供一种数据缓存装置,应用于应用终端,包括:
[0029]发送模块,用于向目标缓存设备发送数据读取请求;其中,所述数据读取请求中包括第一键;
[0030]第一接收模块,用于接收所述目标缓存设备返回的第一响应;其中,所述第一响应中包括:第一指示信息、第二指示信息及缓存数据;所述第一指示信息用于指示所述缓存数据的状态信息;所述第二指示信息用于指示所述缓存数据的版本信息;
[0031]处理模块,用于当所述缓存数据为空值,或者当所述缓存数据为非空值且所述第一指示信息指示所述缓存数据为无效状态时,从数据源设备中读取所述第一键对应的第一数据;确定所述第一数据的状态信息和版本信息;将所述第一键、所述第一数据及所述第一数据的状态信息和版本信息写入所述目标缓存设备。
[0032]根据本专利技术提供的一种数据缓存装置,所述处理模块具体用于:
[0033]在所述第一数据为空值的情况下,确定所述第一数据的状态信息为不存在状态;或者,在所述第一数据为非空值的情况下,确定所述第一数据的状态信息为存在状态。
[0034]在所述缓存数据为空值的情况下,确定所述第一数据的版本信息为无效值;或者,
在所述缓存数据为非空值且所述第一指示信息指示所述缓存数据为无效状态的情况下,根据所述第二指示信息指示的所述缓存数据的版本信息,确定所述第一数据的版本信息。
[0035]根据本专利技术提供的一种数据缓存装置,所述装置还包括第二确定模块,所述第二确定模块具体用于:
[0036]当所述缓存数据为非空值,且所述第一指示信息指示所述缓存数据为存在状态时,确定所述第一键对应的第一数据为所述缓存数据;或者,
[0037]当所述缓存数据为非空值,且所述第一指示信息指示所述缓存数据为不存在状态时,确定所述目标缓存设备和所述数据源设备中均没有所述第一键对应的第一数据。
[0038]第四方面,本专利技术提供一种数据缓存方法,应用于目标缓存设备,所述方法包括:
[0039]第二接收模块,用于第一应用发送的数据更新请求,所述数据更新请求中包括第一键和第一键对应的第一指示信息、第二指示信息以本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据缓存方法,其特征在于,应用于应用终端,所述方法包括:第一应用向目标缓存设备发送数据读取请求;其中,所述数据读取请求中包括第一键;所述第一应用接收所述目标缓存设备返回的第一响应;其中,所述第一响应中包括:第一指示信息、第二指示信息及缓存数据;所述第一指示信息用于指示所述缓存数据的状态信息;所述第二指示信息用于指示所述缓存数据的版本信息;当所述缓存数据为空值,或者当所述缓存数据为非空值且所述第一指示信息指示所述缓存数据为无效状态时,所述第一应用从数据源设备中读取所述第一键对应的第一数据;确定所述第一数据的状态信息和版本信息;将所述第一键、所述第一数据及所述第一数据的状态信息和版本信息写入所述目标缓存设备。2.根据权利要求1所述的数据缓存方法,其特征在于,所述确定所述第一数据的状态信息和版本信息,包括:在所述第一数据为空值的情况下,确定所述第一数据的状态信息为不存在状态;或者,在所述第一数据为非空值的情况下,确定所述第一数据的状态信息为存在状态。在所述缓存数据为空值的情况下,确定所述第一数据的版本信息为无效值;或者,在所述缓存数据为非空值且所述第一指示信息指示所述缓存数据为无效状态的情况下,根据所述第二指示信息指示的所述缓存数据的版本信息,确定所述第一数据的版本信息。3.根据权利要求1或2所述的数据缓存方法,其特征在于,所述方法还包括:当所述缓存数据为非空值,且所述第一指示信息指示所述缓存数据为存在状态时,确定所述第一键对应的第一数据为所述缓存数据;或者,当所述缓存数据为非空值,且所述第一指示信息指示所述缓存数据为不存在状态时,确定所述目标缓存设备和所述数据源设备中均没有所述第一键对应的第一数据。4.一种数据缓存方法,其特征在于,应用于目标缓存设备,所述方法包括:接收第一应用发送的数据更新请求,所述数据更新请求中包括第一键和第一键对应的第一指示信息、第二指示信息以及第一数据;当所述目标缓存设备中不存在所述第一键,且所述第二指示信息指示所述第一数据的版本信息为无效值时,将所述第一数据写入所述目标缓存设备,确定所述第一数据在所述目标缓存设备中对应的版本信息为初始版本,以及根据所述第一指示信息确定所述第一数据在所述目标缓存设备中对应的状态信息;当所述目标缓存设备中存在所述第一键,且所述第一键在所述目标缓存设备中对应的版本信息与所述第一数据的版本信息相同时,将所述第一数据写入所述目标缓存设备,更新所述第一数据在所述目标缓存设备中的版本信息,以及根据所述第一指示信息确定所述第一数据在所述目标缓存设备中对应的状态信息。5.根据权利要求4所述的数据缓存方法,其特征在于,所述方法还包括:接收第二应用发送的数据淘汰请求,所述数据淘汰请求中包括第二键;当所述目标缓存设备中存在所述第二键时,更新所述目标缓存设备中所述第二键对应的版本信息;或者,当所述目标缓存设备中不存在所述第二键...

【专利技术属性】
技术研发人员:申旭刚杨卫平卫俊凯殷智勇
申请(专利权)人:中国互联网络信息中心
类型:发明
国别省市:

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

1