本申请涉及计算机,具体涉及一种数据缓存方法和相关装置。
背景技术:
1、缓存(cache)是一种用于临时存储数据的技术,其主要目的是加速数据读取速度,从而提高系统的整体性能。缓存通常存储频繁访问的数据,使得下次访问相同数据时,可以直接从缓存中获取,而不需要重新从原始数据源(如硬盘)获取。这样可以减少数据访问的时间和开销。
2、现有的缓存技术主要是jvm缓存和redis缓存,jvm缓存缺点是在分布式环境下,不同机子会出现缓存不一致的问题,而redis缓存存在热点数据过期会引发缓存击穿问题,而且使用redis每次请求都需要一次io,影响性能。
技术实现思路
1、鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的一种数据缓存方法和相关装置。
2、第一方面,本发明实施例提供了一种数据缓存方法,所述方法包括以下步骤:
3、接收数据访问请求;
4、确认接收数据访问请求的物理机的本地缓存中是否存在与所述数据访问请求对应的数据;
5、如果本地缓存中存在与所述数据访问请求对应的数据,则读取该数据,并记录该数据的访问次数;若该数据的访问频率超过预设阀值,则将该数据缓存于常驻缓存数据库中;
6、如果本地缓存中不存在与所述数据访问请求对应的数据,则确认常驻缓存数据库是否存在与所述数据访问请求对应的数据;
7、如果常驻缓存数据库存在与所述数据访问请求对应的数据,则读取该数据,并记录该数据的访问次数;
8、如果常驻缓存数据库不存在与所述数据访问请求对应的数据,则查询数据库;
9、如果数据库存在与所述数据访问请求对应的数据,则读取该数据,记录该数据的访问次数,将该数据缓存于本地缓存中,并同步属于同一集群的其它物理机的本地缓存。
10、在一种实施方式中,所述方法还包括步骤:
11、根据预设删除时间及预设缓存容量删除本地缓存中数据。
12、在一种实施方式中,所述方法还包括步骤:
13、根据预设刷新时间刷新常驻缓存数据库中数据。
14、在一种实施方式中,所述同步属于同一集群的其它物理机的本地缓存,包括:
15、通过基于redis的分布式通信组件将该数据缓存于属于同一集群的其它物理机的本地缓存中。
16、第二方面,本发明实施例提供了一种数据缓存装置,所述装置包括:
17、请求接收模块,用于接收数据访问请求;
18、第一查询模块,用于确认接收数据访问请求的物理机的本地缓存中是否存在与所述数据访问请求对应的数据;如果本地缓存中存在与所述数据访问请求对应的数据,则读取该数据,并记录该数据的访问次数;若该数据的访问频率超过预设阀值,则将该数据缓存于常驻缓存数据库中;
19、第二查询模块,用于如果本地缓存中不存在与所述数据访问请求对应的数据,则确认常驻缓存数据库是否存在与所述数据访问请求对应的数据;如果常驻缓存数据库存在与所述数据访问请求对应的数据,则读取该数据,并记录该数据的访问次数;
20、第三查询模块,用于如果常驻缓存数据库不存在与所述数据访问请求对应的数据,则查询数据库;如果数据库存在与所述数据访问请求对应的数据,则读取该数据,记录该数据的访问次数,将该数据缓存于本地缓存中,并同步属于同一集群的其它物理机的本地缓存。
21、在一种实施方式中,所述装置还包括:
22、本地缓存删除模块,用于根据预设删除时间及预设缓存容量删除本地缓存中数据。
23、在一种实施方式中,所述装置还包括:
24、常驻缓存刷新模块,用于根据预设刷新时间刷新常驻缓存数据库中数据。
25、在一种实施方式中,所述第三查询模块还用于通过基于redis的分布式通信组件将该数据缓存于属于同一集群的其它物理机的本地缓存中。
26、第三方面,本发明实施例提供了一种计算机设备,所述计算机设备包括:
27、一个或多个处理器;
28、存储器,用于存储一个或多个程序;
29、当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如第一方面中任一项所述的数据缓存方法。
30、第四方面,本发明实施例提供了一种计算机可读存储介质。
31、所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如第一方面中任一项所述的数据缓存方法。
32、在本发明实施例中,通过接收数据访问请求;确认接收数据访问请求的物理机的本地缓存中是否存在与所述数据访问请求对应的数据;如果本地缓存中存在与所述数据访问请求对应的数据,则读取该数据,并记录该数据的访问次数;若该数据的访问频率超过预设阀值,则将该数据缓存于常驻缓存数据库中;如果本地缓存中不存在与所述数据访问请求对应的数据,则确认常驻缓存数据库是否存在与所述数据访问请求对应的数据;如果常驻缓存数据库存在与所述数据访问请求对应的数据,则读取该数据,并记录该数据的访问次数;如果常驻缓存数据库不存在与所述数据访问请求对应的数据,则查询数据库;如果数据库存在与所述数据访问请求对应的数据,则读取该数据,记录该数据的访问次数,将该数据缓存于本地缓存中,并同步属于同一集群的其它物理机的本地缓存。解决不同机子缓存不一致,以及本地缓存中热点数据过期会引发缓存击穿问题。
1.一种数据缓存方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,还包括:
3.根据权利要求1所述的方法,其特征在于,还包括:
4.根据权利要求1至3任一项所述的方法,其特征在于,所述同步属于同一集群的其它物理机的本地缓存,包括:
5.一种数据缓存装置,其特征在于,包括:
6.根据权利要求5所述的装置,其特征在于,还包括:
7.根据权利要求5所述的装置,其特征在于,还包括:
8.根据权利要求5至7任一项所述的装置,其特征在于,所述第三查询模块还用于通过基于redis的分布式通信组件将该数据缓存于属于同一集群的其它物理机的本地缓存中。
9.一种计算机设备,其特征在于,所述计算机设备包括:
10.一种计算机可读存储介质,其特征在于:所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如权利要求1-4中任一项所述的数据缓存方法。