本申请涉及数据存储,特别涉及一种数据缓存方法,还涉及一种数据缓存装置、电子设备以及计算机可读存储介质。
背景技术:
1、缓存的出现主要是为了解决cpu(central processing unit,中央处理器)运算速度与内存读写速度不匹配的矛盾,cpu内缓存的运行频率极高,一般是和处理器同频运作,工作效率远远大于系统内存和硬盘。在高并发场景下,cpu往往需要重复读取同样的数据块,而缓存容量的增大,可以大幅度提升cpu内部读取数据的命中率,而不用再到硬盘上寻找,以此提高系统性能。
2、然而,现有缓存技术在面临数据同时读写、更新的场景,只能选择放弃并发,或者对受影响的缓存内容进行上锁;无论是前者还是后者,都会大大降低并发效率;虽然现阶段也存在二级缓存、三级缓存等相似概念,但其更多的体现在于对一级缓存的扩容,依然是从扩大缓存内存角度入手,而并未考虑并发场景下对并发效率的提升。
3、因此,如何有效提高缓存在并发场景中的并发效率是本领域技术人员亟待解决的问题。
技术实现思路
1、本申请的目的是提供一种数据缓存方法,该数据缓存方法可以有效提高缓存在并发场景中的并发效率,尤其是在“多插查、少更新”场景下的并发效率;本申请的另一目的是提供一种数据缓存装置、电子设备及计算机可读存储介质,均具有上述有益效果。
2、第一方面,本申请提供了一种数据缓存方法,包括:
3、获取目标数据;
4、判断所述目标数据是否为第一缓存中原始数据的更新数据;
5、若否,则将所述目标数据保存至所述第一缓存;
6、若是,则将所述目标数据保存至第二缓存。
7、可选地,所述数据缓存方法还包括:
8、对所述第二缓存的工作状态进行监控;
9、当所述工作状态满足预设条件时,对所述第一缓存和所述第二缓存进行数据同步。
10、可选地,所述当所述工作状态满足预设条件时,对所述第一缓存和所述第二缓存进行数据同步,包括:
11、当所述第二缓存在预设时长内未接收到新的目标数据时,确定所述工作状态满足所述预设条件;
12、对所述第一缓存和所述第二缓存进行数据同步。
13、可选地,所述当所述工作状态满足预设条件时,对所述第一缓存和所述第二缓存进行数据同步,包括:
14、当所述第二缓存的缓存容量达到第一阈值,且并发量不超过第二阈值时,确定所述工作状态满足所述预设条件;
15、对所述第一缓存和所述第二缓存进行数据同步。
16、可选地,所述当所述工作状态满足预设条件时,对所述第一缓存和所述第二缓存进行数据同步,包括:
17、当所述第二缓存的缓存容量达到第一阈值,且并发量不超过第二阈值时,确定所述工作状态满足所述预设条件;
18、对所述第一缓存和所述第二缓存进行数据同步。
19、可选地,所述对所述第一缓存和所述第二缓存进行数据同步,包括:
20、对所述第一缓存和所述第二缓存进行上锁;
21、将所述第二缓存中的缓存数据同步至所述第一缓存;
22、清空所述第二缓存;
23、对所述第一缓存和所述第二缓存进行解锁。
24、可选地,所述数据缓存方法还包括:
25、当接收到查询指令时,判断所述查询指令是否命中所述第二缓存;
26、若命中所述第二缓存,则输出所述第二缓存中的命中数据;
27、若未命中所述第二缓存,则判断所述查询指令是否命中所述第一缓存;
28、若命中所述第一缓存,则输出所述第一缓存中的命中数据;
29、若未命中所述第一缓存,则输出查询无结果提示。
30、可选地,所述将所述目标数据保存至第二缓存之前,还包括:
31、判断所述目标数据是否为所述第二缓存中原始数据的更新数据;
32、若否,则执行所述将所述目标数据保存至第二缓存的步骤;
33、若是,则对第三缓存进行判断,直至确定不存在对应于所述目标数据的原始数据的目标缓存,并将所述目标数据保存至所述目标缓存。
34、第二方面,本申请还公开了一种数据缓存装置,包括:
35、获取模块,用于获取目标数据;
36、判断模块,用于判断所述目标数据是否为第一缓存中原始数据的更新数据;
37、第一保存模块,用于若所述目标数据不是所述第一缓存中所述原始数据的更新数据,则将所述目标数据保存至所述第一缓存;
38、第二保存模块,用于若所述目标数据是所述第一缓存中所述原始数据的更新数据,则将所述目标数据保存至第二缓存。
39、第三方面,本申请还公开了一种电子设备,包括:
40、存储器,用于存储计算机程序;
41、处理器,用于执行所述计算机程序时实现如上所述的任一种数据缓存方法的步骤。
42、第四方面,本申请还公开了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的任一种数据缓存方法的步骤。
43、本申请提供了一种数据缓存方法,包括:获取目标数据;判断所述目标数据是否为第一缓存中原始数据的更新数据;若否,则将所述目标数据保存至所述第一缓存;若是,则将所述目标数据保存至第二缓存。
44、应用本申请所提供的技术方案,预先创建多级缓存,即上述第一缓存和第二缓存,在获得目标数据之后,可以先判断该目标数据是否为第一缓存中原始数据的更新数据,若不是,则可以直接将该目标数据保存至第一缓存,若是,则可以将其保存至第二缓存,由此,实现了利用多级缓存对更新前后的同一目标数据进行存储,可以有效避免并发场景下对缓存数据的全程上锁,进一步提高了缓存在并发场景中的并发效率。
45、本申请所提供的数据缓存装置、电子设备以及计算机可读存储介质,同样具有上述技术效果,本申请在此不再赘述。
1.一种数据缓存方法,其特征在于,包括:
2.根据权利要求1所述的数据缓存方法,其特征在于,还包括:
3.根据权利要求2所述的数据缓存方法,其特征在于,所述当所述工作状态满足预设条件时,对所述第一缓存和所述第二缓存进行数据同步,包括:
4.根据权利要求2所述的数据缓存方法,其特征在于,所述当所述工作状态满足预设条件时,对所述第一缓存和所述第二缓存进行数据同步,包括:
5.根据权利要求2所述的数据缓存方法,其特征在于,所述对所述第一缓存和所述第二缓存进行数据同步,包括:
6.根据权利要求1所述的数据缓存方法,其特征在于,还包括:
7.根据权利要求1所述的数据缓存方法,其特征在于,所述将所述目标数据保存至第二缓存之前,还包括:
8.一种数据缓存装置,其特征在于,包括:
9.一种电子设备,其特征在于,包括:
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的数据缓存方法的步骤。