CN117785933A - 一种数据缓存方法、装置、设备及可读存储介质 - Google Patents
一种数据缓存方法、装置、设备及可读存储介质 Download PDFInfo
- Publication number
- CN117785933A CN117785933A CN202211274786.7A CN202211274786A CN117785933A CN 117785933 A CN117785933 A CN 117785933A CN 202211274786 A CN202211274786 A CN 202211274786A CN 117785933 A CN117785933 A CN 117785933A
- Authority
- CN
- China
- Prior art keywords
- data
- cache space
- cache
- writing
- target
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000003860 storage Methods 0.000 title claims abstract description 101
- 238000000034 method Methods 0.000 title claims abstract description 54
- 238000004140 cleaning Methods 0.000 claims description 89
- 238000004891 communication Methods 0.000 claims description 9
- 238000004590 computer program Methods 0.000 claims description 8
- 230000006870 function Effects 0.000 claims description 6
- 238000005516 engineering process Methods 0.000 description 17
- 238000012545 processing Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 230000008030 elimination Effects 0.000 description 6
- 238000003379 elimination reaction Methods 0.000 description 6
- 230000001960 triggered effect Effects 0.000 description 5
- 238000011161 development Methods 0.000 description 3
- 230000018109 developmental process Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 2
- 230000003139 buffering effect Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000005201 scrubbing Methods 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例公开了一种数据缓存方法、装置、设备及可读存储介质,其中,方法包括:当接收到数据读取请求时,确定该数据读取请求是否命中缓存,命中缓存是指该数据读取请求所请求的目标数据存在于缓存空间;若该数据读取请求命中缓存,则向客户端返回该目标数据;若该数据读取请求未命中缓存,则从目标数据库中读取该目标数据,基于该缓存空间的内存占用数据与至少两个预设限制阈值确定针对该缓存空间的数据写入策略;基于该数据写入策略将该目标数据写入该缓存空间,并向该客户端返回该目标数据。采用本申请实施例,可以降低数据显示时延,提升数据显示效率。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种数据缓存方法、装置、设备及可读存储介质。
背景技术
目前的存储系统中的缓存优化方式一般是通过设定一个生存时间(TTL,Time ToLive),异步线程定期清理过期的数据。由于在某些时间段存储系统使用频率较大,某些时间段存储系统使用频率较低,因此我们很难设定一个合适的TTL时间来控制存储系统的缓存,避免写满缓存空间,缓存空间的数据过多会降低数据显示效率。
或者,在一些场景中通过为存储系统设定一个缓存空间上限,当写入数据量超过这个上限时,淘汰最久未使用的数据,而在达到设定的缓存空间上限时,新的写请求必须等老的数据淘汰完才能写入成功,会增加时延,降低数据显示的效率。
发明内容
本申请实施例提供一种数据缓存方法、装置、设备及可读存储介质,可以降低数据显示时延,提升数据显示效率。
第一方面,本申请提供一种数据缓存方法,包括:
当接收到数据读取请求时,确定该数据读取请求是否命中缓存,该命中缓存是指该数据读取请求所请求的目标数据存在于缓存空间;
若该数据读取请求命中缓存,则向客户端返回该目标数据;
若该数据读取请求未命中缓存,则从目标数据库中读取该目标数据,基于该缓存空间的内存占用数据与至少两个预设限制阈值确定针对该缓存空间的数据写入策略;
基于该数据写入策略将该目标数据写入该缓存空间,并向该客户端返回该目标数据。
结合第一方面,在一种可能的实现方式中,该至少两个预设限制阈值包括第一限制阈值和第二限制阈值,第一限制阈值小于第二限制阈值;该基于该缓存空间的内存占用数据与至少两个预设限制阈值确定针对该缓存空间的数据写入策略,包括:
若该缓存空间的内存占用数据小于该第一限制阈值,则确定针对该缓存空间的数据写入策略为直接写入策略,该直接写入策略用于将该目标数据写入该缓存空间。
结合第一方面,在一种可能的实现方式中,该至少两个预设限制阈值包括第一限制阈值和第二限制阈值,该第一限制阈值小于该第二限制阈值;
该基于该缓存空间的内存占用数据与至少两个预设限制阈值确定针对该缓存空间的数据写入策略,包括:
若该缓存空间的内存占用数据大于或等于该第一限制阈值且小于该第二限制阈值,则确定针对该缓存空间的数据写入策略为标记清理策略;该标记清理策略用于将该目标数据写入该缓存空间,并标记针对该缓存空间的数据清理任务,该数据清理任务用于在时长阈值内采用目标清理规则对该缓存空间的数据进行清理。
结合第一方面,在一种可能的实现方式中,该至少两个预设限制阈值包括第一限制阈值和第二限制阈值,第一限制阈值小于第二限制阈值;
该基于该缓存空间的内存占用数据与至少两个预设限制阈值确定针对该缓存空间的数据写入策略,包括:
若该缓存空间的内存占用数据大于或等于该第二限制阈值,则确定针对该缓存空间的数据写入策略为缓存清除策略;该缓存清除策略用于对该缓存空间进行清理后再写入该目标数据;
该基于该数据写入策略将该目标数据写入该缓存空间,包括:
采用目标清理规则对该缓存空间的数据进行清理,以使该缓存空间的内存占用数据小于或等于该第一限制阈值;
将该目标数据写入该缓存空间。
结合第一方面,在一种可能的实现方式中,若该至少两个预设限制阈值包括第一限制阈值;该基于该缓存空间的内存占用数据与至少两个预设限制阈值确定针对该缓存空间的数据写入策略之前,还包括:
检测该目标数据的数据写入速度;
若该数据写入速度大于速度阈值,则确定该第一限制阈值为第一数值;
若该数据写入速度小于或等于该速度阈值,则确定该第一限制阈值为第二数值,该第一数值小于该第二数值。
结合第一方面,在一种可能的实现方式中,该方法还包括:
当接收到数据写入请求时,将该数据写入请求所请求的写入数据写入该目标数据库中,清除该缓存空间中与该写入数据匹配的数据;
当接收到针对该写入数据的数据读取请求时,从该目标数据库中获取该写入数据,将该写入数据写入该缓存空间,向该客户端返回该写入数据。
结合第一方面,在一种可能的实现方式中,该方法还包括:
当接收到数据写入请求时,确定该缓存空间中是否存在与该写入数据相同的缓存数据;
若该缓存空间中存在与该写入数据相同的缓存数据,则向该客户端返回该写入数据。
第二方面,本申请提供一种数据缓存装置,包括:
数据读取单元,用于当接收到数据读取请求时,确定该数据读取请求是否命中缓存,该命中缓存是指该数据读取请求所请求的目标数据存在于缓存空间;
数据命中单元,用于若该数据读取请求命中缓存,则向客户端返回该目标数据;
策略确定单元,用于若该数据读取请求未命中缓存,则从目标数据库中读取该目标数据,基于该缓存空间的内存占用数据与至少两个预设限制阈值确定针对该缓存空间的数据写入策略;
数据写入单元,用于基于该数据写入策略将该目标数据写入该缓存空间,并向该客户端返回该目标数据。
结合第二方面,在一种可能的实现方式中,该至少两个预设限制阈值包括第一限制阈值和第二限制阈值,第一限制阈值小于第二限制阈值;该策略确定单元,用于:
若该缓存空间的内存占用数据小于该第一限制阈值,则确定针对该缓存空间的数据写入策略为直接写入策略,该直接写入策略用于将该目标数据写入该缓存空间。
结合第二方面,在一种可能的实现方式中,该至少两个预设限制阈值包括第一限制阈值和第二限制阈值,该第一限制阈值小于该第二限制阈值;该策略确定单元,用于:
若该缓存空间的内存占用数据大于或等于该第一限制阈值且小于该第二限制阈值,则确定针对该缓存空间的数据写入策略为标记清理策略;该标记清理策略用于将该目标数据写入该缓存空间,并标记针对该缓存空间的数据清理任务,该数据清理任务用于在时长阈值内采用目标清理规则对该缓存空间的数据进行清理。
结合第二方面,在一种可能的实现方式中,该至少两个预设限制阈值包括第一限制阈值和第二限制阈值,第一限制阈值小于第二限制阈值;该策略确定单元,用于:
若该缓存空间的内存占用数据大于或等于该第二限制阈值,则确定针对该缓存空间的数据写入策略为缓存清除策略;该缓存清除策略用于对该缓存空间进行清理后再写入该目标数据;
采用目标清理规则对该缓存空间的数据进行清理,以使该缓存空间的内存占用数据小于或等于该第一限制阈值;
将该目标数据写入该缓存空间。
结合第二方面,在一种可能的实现方式中,若该至少两个预设限制阈值包括第一限制阈值;该数据缓存装置还包括:阈值确定单元,用于:
检测该目标数据的数据写入速度;
若该数据写入速度大于速度阈值,则确定该第一限制阈值为第一数值;
若该数据写入速度小于或等于该速度阈值,则确定该第一限制阈值为第二数值,该第一数值小于该第二数值。
结合第二方面,在一种可能的实现方式中,该数据缓存装置还包括:数据清除单元,用于:
当接收到数据写入请求时,将该数据写入请求所请求的写入数据写入该目标数据库中,清除该缓存空间中与该写入数据匹配的数据;
当接收到针对该写入数据的数据读取请求时,从该目标数据库中获取该写入数据,将该写入数据写入该缓存空间,向该客户端返回该写入数据。
结合第二方面,在一种可能的实现方式中,该数据清除单元,还用于:
当接收到数据写入请求时,确定该缓存空间中是否存在与该写入数据相同的缓存数据;
若该缓存空间中存在与该写入数据相同的缓存数据,则向该客户端返回该写入数据。
第三方面,本申请提供了一种计算机设备,包括:处理器、存储器、网络接口;
上述处理器与存储器、网络接口相连,其中,网络接口用于提供数据通信功能,上述存储器用于存储计算机程序代码,上述处理器用于调用上述计算机程序代码,以使包含该处理器的计算机设备执行上述数据缓存方法。
第四方面,本申请提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,该计算机程序适于由处理器加载并执行,以使得具有该处理器的计算机设备执行上述数据缓存方法。
第五方面,本申请提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本申请第一方面中的各种可选方式中提供的数据缓存方法。
本申请实施例中,由于在接收到数据读取请求时,确定数据读取请求是否命中缓存,若数据读取请求命中缓存则直接向客户端返回目标数据,可以加快数据显示效率。进一步地,若数据读取请求未命中缓存,则从数据库中读取目标数据,并基于缓存空间的内存占用情况与至少两个预设限制阈值之间的关系确定针对缓存空间的数据写入策略,基于对应的数据写入策略将目标数据写入缓存空间,将写入后的目标数据返回至客户端进行数据显示。由于在将目标数据写入缓存空间时,对缓存空间当前的内存占用情况与两个预设限制阈值进行了比较,针对缓存空间的内存占用情况不同确定的数据写入策略也不同,可以避免直接将目标数据写入缓存空间导致缓存空间过度占用的情况,可以降低数据显示时延,提升数据显示效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种数据缓存系统的网络架构图;
图2是本申请实施例提供的一种数据缓存方法的应用场景示意图;
图3是本申请实施例提供的一种数据缓存方法的流程示意图;
图4是本申请实施例提供的另一种数据缓存方法的流程示意图;
图5是本申请实施例提供的一种数据缓存装置的组成结构示意图;
图6是本申请实施例提供的一种计算机设备的组成结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
云技术(Cloud technology)是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。云技术基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络系统的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台系统进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的系统后盾支撑,只能通过云计算来实现。本申请实施例提供的方案属于云技术领域下属的云计算。
云计算(cloud computing)指IT基础设施的交付和使用模式,指通过网络以按需、易扩展的方式获得所需资源;广义云计算指服务的交付和使用模式,指通过网络以按需、易扩展的方式获得所需服务。这种服务可以是IT和软件、互联网相关,也可是其他服务。云计算是网格计算(Grid Computing)、分布式计算(Distributed Computing)、并行计算(Parallel Computing)、效用计算(Utility Computing)、网络存储(Network StorageTechnologies)、虚拟化(Virtualization)、负载均衡(Load Balance)等传统计算机和网络技术发展融合的产物。随着互联网、实时数据流、连接设备多样化的发展,以及搜索服务、社会网络、移动商务和开放协作等需求的推动,云计算迅速发展起来。不同于以往的并行分布式计算,云计算的产生从理念上将推动整个互联网模式、企业管理模式发生革命性的变革。例如,本申请中可以采用云计算方式来判断缓存空间的内存占用数据与至少两个预设限制阈值之间的大小关系。
云存储(cloud storage)是在云计算概念上延伸和发展出来的一个新的概念,分布式云存储系统(以下简称存储系统)是指通过集群应用、网格技术以及分布存储文件系统等功能,将网络中大量各种不同类型的存储设备(存储设备也称之为存储节点)通过应用软件或应用接口集合起来协同工作,共同对外提供数据存储和业务访问功能的一个存储系统。目前,存储系统的存储方法为:创建逻辑卷,在创建逻辑卷时,就为每个逻辑卷分配物理存储空间,该物理存储空间可能是某个存储设备或者某几个存储设备的磁盘组成。客户端在某一逻辑卷上存储数据,也就是将数据存储在文件系统上,文件系统将数据分成许多部分,每一部分是一个对象,对象不仅包含数据而且还包含数据标识(ID,ID entity)等额外的信息,文件系统将每个对象分别写入该逻辑卷的物理存储空间,且文件系统会记录每个对象的存储位置信息,从而当客户端请求访问数据时,文件系统能够根据每个对象的存储位置信息让客户端对数据进行访问。存储系统为逻辑卷分配物理存储空间的过程,具体为:按照对存储于逻辑卷的对象的容量估量(该估量往往相对于实际要存储的对象的容量有很大余量)和独立冗余磁盘阵列(RAID,Redundant Array of Independent Disk)的组别,预先将物理存储空间划分成分条,一个逻辑卷可以理解为一个分条,从而为逻辑卷分配了物理存储空间。例如,本申请中可以采用云存储方式对目标数据进行存储。
需要特别说明的是,本申请实施例中涉及到用户信息相关的数据(例如目标数据、写入数据,等等),当本申请实施例运用到具体产品或技术中时,需要获得用户许可或者同意,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。用户可以是指终端设备或者计算机设备的使用者。
本申请技术方案适用于图存储系统的数据读写等场景中,通过给图存储系统的缓存空间设置至少两个限制阈值,从而根据缓存空间的内存占用情况和至少两个限制阈值确定对应的数据写入策略,基于对应的数据写入策略将数据写入图存储系统的缓存空间,进而向客户端返回该数据。本申请技术方案还可应用于各种场景,包括但不限于云技术、人工智能、智慧交通、辅助驾驶等。
请参见图1,图1是本申请实施例提供的一种数据缓存系统的网络架构图,如图1所示,计算机设备可以与终端设备进行数据交互,终端设备的数量可以为一个或者至少两个,例如,当终端设备的数量为多个时,终端设备可以包括图1中的终端设备101a、终端设备101b及终端设备101c等。其中,以终端设备101a为例,计算机设备102可以接收数据读取请求,当接收到数据读取请求时,计算机设备102可以确定数据读取请求是否命中缓存。进一步地,若数据读取请求命中缓存,则计算机设备102可以向客户端返回目标数据。客户端可以安装在任意终端设备上,以客户端安装在终端设备101a上为例,则可以在终端设备101a上显示该目标数据。若数据读取请求未命中缓存,则计算机设备102可以从目标数据库中读取目标数据,基于缓存空间的内存占用数据与至少两个预设限制阈值确定针对缓存空间的数据写入策略;基于数据写入策略将目标数据写入缓存空间,并向客户端返回目标数据,进而可以在终端设备101a上显示该目标数据。
由于在接收到数据读取请求时,确定数据读取请求是否命中缓存,若数据读取请求命中缓存则直接向客户端返回目标数据,可以加快数据显示效率。进一步地,若数据读取请求未命中缓存,则从数据库中读取目标数据,并基于缓存空间的内存占用情况与至少两个预设限制阈值之间的关系确定针对缓存空间的数据写入策略,基于对应的数据写入策略将目标数据写入缓存空间,将写入后的目标数据返回至客户端进行数据显示。由于在将目标数据写入缓存空间时,对缓存空间当前的内存占用情况与两个预设限制阈值进行了比较,针对缓存空间的内存占用情况不同确定的数据写入策略也不同,可以避免直接将目标数据写入缓存空间导致缓存空间过度占用的情况,可以降低数据显示时延,提升数据显示效率。
可以理解的是,本申请实施例中所提及的计算机设备包括但不限于终端设备或服务器。换句话说,计算机设备可以是服务器或终端设备,也可以是服务器和终端设备组成的系统。其中,以上所提及的终端设备可以是一种电子设备,包括但不限于手机、平板电脑、台式电脑、笔记本电脑、掌上电脑、车载设备、智能语音交互设备、增强现实/虚拟现实(Augmented Reality/Virtual Reality,AR/VR)设备、头盔显示器、可穿戴设备、智能音箱、智能家电、飞行器、数码相机、摄像头及其他具备网络接入能力的移动互联网设备(mobileinternet device,MID)等。其中,以上所提及的服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、车路协同、内容分发网络(Content Delivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。
进一步地,请参见图2,图2是本申请实施例提供的一种数据缓存方法的应用场景示意图。如图2所示,当计算机设备20接收到数据读取请求时,可以确定数据读取请求是否命中缓存。若数据读取请求命中缓存,则计算机设备20可以向客户端21返回目标数据。若数据读取请求未命中缓存,则计算机设备20可以从目标数据库22中读取目标数据,若缓存空间的内存占用数据小于第一限制阈值,则将目标数据写入缓存空间,向客户端21返回目标数据。若缓存空间的内存占用数据大于或等于第一限制阈值且小于第二限制阈值,则将目标数据写入缓存空间,向客户端21返回目标数据,并标记针对缓存空间的数据清理任务。若缓存空间的内存占用数据大于或等于第二限制阈值,则对缓存空间进行清理后再写入目标数据,向客户端21返回目标数据。
进一步地,请参见图3,图3是本申请实施例提供的一种数据缓存方法的流程示意图;如图3所示,该数据缓存方法可以应用于图存储系统,图存储系统可以运行在计算机设备上,该数据缓存方法包括但不限于以下步骤:
S101,当接收到数据读取请求时,确定数据读取请求是否命中缓存。
本申请实施例中,图存储系统可以运行在计算机设备上,当运行在计算机设备上的图存储系统接收到数据读取请求时,可以确定数据读取请求是否命中缓存。其中,图存储系统可以是指用于缓存社交图谱数据的分布式缓存模块组成的系统,可以满足读多写少的社交图谱数据的查询场景。社交图谱数据可以反映社交应用程序中的注册用户之间的社会关系。注册用户之间的社会关系包括但不限于关注、点赞、评论,等等。图存储系统应用在社交图谱数据的查询场景时,对时延有着非常高的要求。而由于分布式缓存模块对时延的影响较大,会导致客户端的数据读取效率较低,进而降低数据显示效率。目前的缓存淘汰策略对数据进行淘汰的方式包括两种:
第一种:写入数据至图存储系统的时候对数据设定一个TTL,异步线程定期清理过期的数据。其中,TTL是设置在队列上,消息从队列开始计算,只要超过队列配置的超时时间,消息就会被自动清除,也就是在指定的时间内没被消费的消息会被清理掉。因为社交图谱数据的特点,在某些时间段如晚上8:00-10:00图存储系统使用频率较大,某些时间段如凌晨1:00-凌晨5:00图存储系统的使用频率较低,因此很难设定一个合适的TTL时间来控制不写满缓存空间。同时,这种方式一般需要预留比较大的空闲缓存,缓存空间利用率比较低。
第二种:LRU(Least Recently Used)淘汰算法,即认为最近使用过的数据是有用的,很久没使用过的数据是无用的,图存储系统的缓存空间内存满了就优先删除很久没使用过的数据。该种淘汰方式需要给图存储系统的缓存空间设定一个上限,当写入的数据量超过这个上限时,按照LRU的方式淘汰最久未使用的数据。该种方式需要设置一个LRU链表,LRU链表中可以按照数据被使用的先后顺序进行排序,最近使用的数据排在前面,从而在进行数据淘汰时,直接淘汰表中末尾数据。这种方式还有很多变种和优化,例如不需要维护一个LRU链表,每次随机挑选一个记录来淘汰,等等。但这种方式本质上还是在达到设定的缓存空间上限的时候,新的数据写请求必须要等图存储系统的缓存空间中老的数据淘汰完,才能写入成功。在每秒钟处理完请求的次数(Queries Per Second,QPS)较高的情形下,即发出请求到服务器处理完并成功返回结果至客户端,比较容易导致时延的抖动,出现客户端显示异常,降低用户体验。
因此,本申请实施例中的方法,通过设置两个预设限制阈值来控制图存储系统的缓存空间中的数据量,在缓存空间中的数据量占用情况满足预设限制阈值时,采用数据清理策略对缓存空间的数据进行清理,可以保证缓存空间的数据使用率,并且该种数据清除策略可以优化淘汰数据时对数据请求时延的影响,例如可以优化对p99时延的影响,提升客户端的数据读取效率,提升数据显示效率,进而提升用户体验。
本申请实施例中,数据读取请求用于从图存储系统的缓存空间中读取数据并向客户端返回数据,或者从数据库中读取数据并写入图存储系统的缓存空间,向客户端返回数据。命中缓存是指数据读取请求所请求的目标数据存在于缓存空间,即图存储系统的缓存空间中存在该目标数据。若图存储系统的缓存空间中不存在该目标数据,则表示数据读取请求未命中缓存。图存储系统的缓存空间中的数据可以是从数据库中读取并写入缓存空间的。
可选地,图存储系统的缓存空间可以是指集成在图存储系统中的临时存储器,例如可以为一种高速小容量的临时存储器,利用高速的静态存储器芯片实现,或者集成到中央处理器(Central Processing Unit,CPU)芯片内部,存储CPU最经常访问的指令或者操作数据。
S102,若数据读取请求命中缓存,则向客户端返回目标数据。
本申请实施例中,由于数据读取请求命中缓存,表示图存储系统的缓存空间中存在数据读取请求所要请求的目标数据,则可以直接向客户端返回目标数据,可以减少数据等待的时间。并且,由于设置了图存储系统的缓存空间,而图存储系统的缓存空间相较于数据库而言,空间容量小,能缓存的数据量小,因此读取缓存空间中的数据的效率较高,相较于图存储系统直接读取数据库中的数据而言,可以提高数据读取效率,进而提高数据显示效率。
S103,若数据读取请求未命中缓存,则从目标数据库中读取目标数据,基于缓存空间的内存占用数据与至少两个预设限制阈值确定针对缓存空间的数据写入策略。
本申请实施例中,若数据读取请求未命中缓存,则表示图存储系统的缓存空间中不存在数据读取请求所要请求的目标数据,则可以从目标数据库中读取目标数据,基于缓存空间的内存占用数据与至少两个预设限制阈值确定针对缓存空间的数据写入策略。
其中,缓存空间的内存占用数据可以用于反映缓存空间的占用情况,例如可以是指缓存空间的占用数值,或者缓存空间的占用比例,等等。目标数据库中包括的数据较为全面,因此,当数据读取请求未命中缓存时,则可以遍历目标数据库,从目标数据库中读取目标数据。在读取到目标数据之后,可以先对缓存空间的内存占用情况进行判断再写入数据,避免由于缓存空间中的内存占用过多导致内存溢出(Out Of Memory,OOM)。内存溢出是指应用系统中存在无法回收的内存或使用的内存过多,最终使得程序运行需要使用的内存大于能提供的最大内存,此时程序就无法运行,系统会提示内存溢出,有时候会自动关闭软件,重启电脑或者软件后释放掉一部分内存又可以正常运行该软件,但是由系统配置、数据流、用户代码等原因而导致的内存溢出错误,即使用户重新执行任务依然无法避免。
在一个实施例中,至少两个预设限制阈值包第一限制阈值和第二限制阈值,第一限制阈值小于第二限制阈值时,基于缓存空间的内存占用数据与至少两个预设限制阈值确定针对缓存空间的数据写入策略的方法可以为:
若缓存空间的内存占用数据小于第一限制阈值,则确定针对缓存空间的数据写入策略为直接写入策略;则将目标数据写入缓存空间。
也就是说,若缓存空间的内存占用数据小于至少两个限制阈值中最小的限制阈值时,直接将目标数据写入缓存空间。其中,直接写入策略用于直接将目标数据写入缓存空间,无需标记缓存清理任务或者对缓存空间进行清理就可以将目标数据写入缓存空间。第一限制阈值可以根据图存储系统的缓存空间的总内存数据确定。例如,图存储系统的缓存空间的总内存为1G(千兆字节),则第一限制阈值可以为600M(兆字节),或者第一限制阈值可以为图存储系统的缓存空间的总内存的60%,等等。第一限制阈值可以表示图存储系统的缓存空间较佳的使用值,即当图存储系统的缓存空间小于或等于该第一限制阈值时,表示缓存空间的内存还存在较大占用空间,此时可以确定针对缓存空间的数据写入策略为直接写入策略,即直接将目标数据写入缓存空间,无需对缓存空间的数据进行清理。
可选地,还可以根据数据写入速度确定第一限制阈值。具体地,可以检测目标数据的数据写入速度;若数据写入速度大于速度阈值,则确定第一限制阈值为第一数值;若数据写入速度小于或等于速度阈值,则确定第一限制阈值为第二数值,第一数值小于第二数值。
其中,数据写入速度可以根据获取到的多个数据请求的时间间隔确定,数据请求可以包括数据读取请求和数据写入请求,数据写入请求用于将数据写入数据库中。通过在接收到多个数据请求时,获取每个数据请求对应的时间,从而根据连续两个数据请求对应的时间之间的时间间隔确定数据写入速度。若时间间隔小于时间阈值,则确定写入速度大于速度阈值;若时间间隔大于或等于时间阈值,则确定写入速度小于或等于速度阈值。
由于数据写入速度越快则表示图存储系统的缓存空间中需要清理的数据越多,即需要清理的数据的数据量越大,此时通过设置第一限制阈值越小,则可以提前触发异步清除任务,使得缓存空间占用内存不容易达到第二限制阈值,提高数据缓存的效率。数据写入速度越慢表示图存储系统的缓存空间中需要淘汰的数据越少,即需要清理的数据的数据量越小,缓存空间的占用内存不容易达到第二限制阈值,此时通过设置第一限制阈值较大,则可以减少数据清理的频率,节省资源消耗。
举例来说,例如数据写入速度大于速度阈值,则确定第一限制阈值为缓存空间总内存的60%;或者数据写入速度小于或等于速度阈值,则确定第一限制阈值为缓存空间总内存的70%,等等。
可选地,还可以根据数据写入时间段确定第一限制阈值。具体地,可以检测目标数据的数据写入时间段;若数据写入时间段属于第一时间段,则确定第一限制阈值为第一数值;若数据写入时间段不属于第一时间段,则确定第一限制阈值为第二数值。其中,第一时间段可以是指一天中用户使用图存储系统频率大于频率阈值的时间段,例如可以包括但不限于中午11:30-1:30、晚上8:00-12:00,第二时间段可以是指第一时间段以外的时间段。
由于第一时间段是指用户使用图存储系统频率较高的时间段,则可以设置在第一时间段内的第一限制阈值为第一数值,例如60%,可以快速触发异步清理任务,使得缓存空间占用内存不容易达到第二限制阈值,提高数据缓存的效率。并设置第二时间段内的第一限制阈值为第二数值,例如70%,可以减少数据清理的频率,降低资源消耗。
可选地,还可以根据数据写入时间段确定第二限制阈值。具体地,可以检测目标数据的数据写入时间段;若数据写入时间段属于第一时间段,则确定第二限制阈值为第三数值;若数据写入时间段不属于第一时间段,则确定第二限制阈值为第四数值,第三数值小于第四数值,第三数值大于第二数值。第四数值可以小于或等于缓存空间能使用的最大内存。
可选地,还可以根据数据写入速度确定第二限制阈值。具体地,可以检测目标数据的数据写入速度;若数据写入速度大于速度阈值,则确定第二限制阈值为第三数值;若数据写入速度小于或等于速度阈值,则确定第二限制阈值为第四数值。
举例来说,例如数据写入速度大于速度阈值,则确定第二限制阈值为缓存空间总内存的75%;或者数据写入速度小于或等于速度阈值,则确定第二限制阈值为缓存空间总内存的80%,等等。
可选地,还可以获取目标数据的有效时长和数据读取请求对应的时间,基于目标数据的有效时长、数据读取请求对应的时间、缓存空间的内存占用数据与至少两个预设限制阈值确定针对缓存空间的数据写入策略。其中,数据读取请求对应的时间可以包括但不限于接收到数据读取请求的时间,或者需要查询目标数据的时间,等等。目标数据的有效时长可以包括但不限于目标数据的可查看时间范围、有效时间范围,等等。例如某些数据设置有可查看时间范围,如用户针对于某篇笔记设置了可查看时间范围,如一天内可查看、三天内可查看、一个月内可查看,等等。则当获取到数据读取请求时,若数据读取请求对应的时间属于目标数据的有效时长内,且缓存空间的内存占用数据小于第一限制阈值,则将目标数据写入缓存空间。或者若数据读取请求对应的时间属于目标数据的有效时长内,缓存空间的内存占用数据大于或等于第一限制阈值且小于第二限制阈值,则将目标数据写入缓存空间,并标记针对缓存空间的数据清理任务。或者,若数据读取请求对应的时间属于目标数据的有效时长内,且缓存空间的内存占用数据大于或等于第二限制阈值,则对缓存空间进行清理后再写入目标数据。又或者,若数据读取请求对应的时间不属于目标数据的有效时长内,则确定针对缓存空间的数据写入策略为无法读取策略,则不向客户端返回目标数据。
通过将数据读取请求对应的时间和目标数据的有效时长进行比较,若数据读取请求对应的时间在目标数据的有效时长范围内,表示具有查看目标数据的权限,则可以结合缓存空间的内存占用数据确定数据写入策略,进而将目标数据返回客户端。若数据读取请求对应的时间不在目标数据的有效时长范围内,表示不具有查看目标数据的权限,则不向客户端返回数据,提升用户体验。
在一个实施例中,至少两个预设限制阈值包括第一限制阈值和第二限制阈值,第一限制阈值小于第二限制阈值,基于缓存空间的内存占用数据与至少两个预设限制阈值确定针对缓存空间的数据写入策略的方法可以为:
若缓存空间的内存占用数据大于或等于第一限制阈值且小于第二限制阈值,则确定针对缓存空间的数据写入策略为标记清理策略。标记清理策略用于将目标数据写入缓存空间,并标记针对缓存空间的数据清理任务,数据清理任务用于在时长阈值内采用目标清理规则对缓存空间的数据进行清理。
其中,第二限制阈值也可以根据图存储系统的缓存空间的总内存数据确定。例如,图存储系统的缓存空间的总内存为1G,则第二限制阈值可以为800M,或者第二限制阈值可以为图存储系统的缓存空间的总内存的80%,等等。第二限制阈值可以表示图存储系统的缓存空间能使用的最大内存,超过这个阈值则图存储系统存在内存溢出的风险。由于缓存空间的内存占用数据大于或等于第一限制阈值且小于第二限制阈值,表示图存储系统的缓存空间可以正常运行,但是为了避免缓存空间的内存占用达到第二限制阈值导致存在内存溢出风险,因此可以确定针对缓存空间的数据写入策略为标记清理策略。即将目标数据写入缓存空间,使得目标数据可以快速在客户端显示,并且标记针对缓存空间的数据清理任务,以在时长阈值内采用目标清理规则对缓存空间的数据进行清理。目标清理规则可以包括但不限于LRU淘汰规则、LFU淘汰规则(Least Frequently Used)、TTL淘汰规则、等等。时长阈值可以是指1秒、3秒、5秒,等等,即在向客户端返回目标数据的时长阈值内采用目标清理规则对缓存空间的数据进行清理。例如在向客户端返回目标数据的1秒时间内采用LRU对缓存空间的数据进行清理。
可选地,第一限制阈值可以为soft limit值(软件限制值),第二限制阈值可以为hard limit值(硬限制值)。在对图存储系统的缓存空间中的数据进行清理时,可以触发异步清理任务清除缓存空间的数据,即采用目标清理规则对缓存空间进行数据清理。由于采用异步清除内存的方式对缓存空间的数据进行清理,并且在时长阈值内对缓存空间进行数据清理,无需持续清理缓存空间导致占用CPU,因此可以控制CPU的使用时间,并且异步处理时可以优先处理数据读取请求,即先将目标数据写入缓存空间并发送至客户端,再触发异步清理任务,可以避免异步清理任务占用过多的CPU,从而降低资源消耗。
在一个实施例中,至少两个预设限制阈值包括第一限制阈值和第二限制阈值,第一限制阈值小于第二限制阈值,基于缓存空间的内存占用数据与至少两个预设限制阈值确定针对缓存空间的数据写入策略的方法可以为:
若缓存空间的内存占用数据大于或等于第二限制阈值,则确定针对缓存空间的数据写入策略为缓存清除策略。其中,缓存清除策略用于对缓存空间进行清理后再写入目标数据。也就是说,若缓存空间的内存占用数据大于至少两个预设限制阈值中最大的限制阈值,则确定对缓存空间进行清理后再写入目标数据。
由于图存储系统的缓存空间的内存占用数据大于或等于第二限制阈值,表示图存储系统存在内存溢出的风险,因此当缓存空间的内存占用数据大于或等于第二限制阈值时,可以对缓存空间进行清理后再写入目标数据,避免由于缓存空间的内存占用过高时写入目标数据导致内存溢出,提高设备安全性,进而保证数据显示效率。在对缓存空间进行清理时,可以采用目标清理规则对缓存空间的数据进行清理。
S104,基于数据写入策略将目标数据写入缓存空间,并向客户端返回目标数据。
本申请实施例中,由于根据图存储系统的缓存空间的内存占用情况不同,确定的数据写入策略不同,在确定针对缓存空间的数据写入策略之后,可以基于确定数据写入策略将目标数据写入缓存空间。数据写入策略可以包括但不限于直接写入策略、标记清理策略、缓存清理策略,等等。通过将目标数据写入缓存空间,可以实现向客户端返回目标数据,后续读取目标数据时,可以直接从缓存空间中进行读取,无需从目标数据库进行读取以及再次写入缓存空间,可以提高数据写入效率。
若数据写入策略为直接写入策略,则直接将目标数据写入缓存空间。若数据写入策略为标记清理策略,则将目标数据写入缓存空间,并标记针对缓存空间的数据清理任务,以实现在时长阈值内采用目标清理规则对缓存空间的数据进行清理。若数据写入策略为缓存清理策略,则采用目标清理规则对缓存空间的数据进行清理,以使缓存空间的内存占用数据小于或等于第一限制阈值;将目标数据写入缓存空间。通过对缓存空间的数据进行清理,使得缓存空间的内存占用数据小于或等于第一限制阈值,可以避免很快缓存空间又写满,降低内存溢出风险,提高设备安全性。
在一种可能的实现方式中,若数据读取请求未命中缓存,还可以从目标数据库中读取目标数据,直接向客户端返回目标数据。
通过本申请实施例设置两个预设限制阈值的方式,可以保证图存储系统的缓存空间在大于第一限制阈值时标记异步清理任务,从而对缓存空间中的数据进行清理,可以保证缓存空间使用率处于合适的范围,避免触发OOM。由于异步清理任务时间较短清理的缓存空间中的数据较少,则当缓存空间的内存占用情况达到第二限制值时进行异步数据清理,而缓存空间淘汰数据时,由于是采用异步数据清理方式,因此不影响客户端的数据请求获取以及处理。并且异步清理时是在时长阈值内执行的,无需一直执行,因此可以控制CPU的使用率,优先处理客户端的数据请求,进而可以保证前端数据请求不受影响。
本申请实施例中,由于在接收到数据读取请求时,确定数据读取请求是否命中缓存,若数据读取请求命中缓存则直接向客户端返回目标数据,可以加快数据显示效率。进一步地,若数据读取请求未命中缓存,则从数据库中读取目标数据,并基于缓存空间的内存占用情况与至少两个预设限制阈值之间的关系确定针对缓存空间的数据写入策略,基于对应的数据写入策略将目标数据写入缓存空间,将写入后的目标数据返回至客户端进行数据显示。由于在将目标数据写入缓存空间时,对缓存空间当前的内存占用情况与两个预设限制阈值进行了比较,针对缓存空间的内存占用情况不同确定的数据写入策略也不同,可以避免直接将目标数据写入缓存空间导致缓存空间过度占用的情况,可以降低数据显示时延,提升数据显示效率。
可选的,请参见图4,图4是本申请实施例提供的另一种数据缓存方法的流程示意图;如图4所示,该数据缓存方法可以应用于图存储系统,图存储系统可以运行在计算机设备上,该数据缓存方法包括但不限于以下步骤:
S201,接收数据请求。
其中,数据请求可以包括数据读取请求和数据写入请求。
S202,判断数据请求是否为数据读取请求。
可选地,图存储系统可以根据数据请求的类型确定数据请求为数据读取请求或者数据写入请求。举例来说,若接收到数据请求的类型为“read request rpc call”,则可以表示数据请求为数据读取请求,该数据读取请求可以用于读取社交应用程序中各个注册用户之间的关系,例如可以包括关注、评论、点赞,等等。若接收到数据请求的类型为“writerequest rpc call”,则可以表示数据请求为数据写入请求,数据写入请求可以用于写入社交应用程序中各个注册用户之间的关系,例如用户A关注了用户B、用户A评论了用户B,等等。
S203,若为数据读取请求,确定数据读取请求是否命中缓存。
S204,若数据读取请求命中缓存,则向客户端返回目标数据。
S205,若数据读取请求未命中缓存,则从目标数据库中读取目标数据。
S206,若缓存空间的内存占用数据小于第一限制阈值,则将目标数据写入缓存空间。
S207,若缓存空间的内存占用数据大于或等于第一限制阈值且小于第二限制阈值,则将目标数据写入缓存空间,并标记针对缓存空间的数据清理任务。
S208,若缓存空间的内存占用数据大于或等于第二限制阈值,则对缓存空间进行清理后再写入目标数据。
本申请实施例中,步骤S203~步骤S208中的具体实现方式可以参考上述步骤S101~步骤S104中的实现方式,此处不再赘述。
S209,若存在数据清理任务,则在时长阈值内对缓存空间的数据进行清理。
这里,当缓存空间的内存占用数据大于或等于第一限制阈值且小于第二限制阈值,则将目标数据写入缓存空间,并标记针对缓存空间的数据清理任务,以在时长阈值内采用目标清理规则对缓存空间的数据进行清理。通过向客户端返回目标数据,若存在数据清理任务,则在时长阈值内对缓存空间的数据进行清理,可以实现优先处理数据读取请求,避免异步清理任务占用过多的CPU,从而降低资源消耗。
S210,若不为数据读取请求,则将数据写入请求所请求的写入数据写入目标数据库中,清除缓存空间中与写入数据匹配的数据。
其中,若数据请求不为数据读取请求,则可以表示数据请求为数据写入请求,当接收到数据写入请求时,图存储系统可以将数据写入请求所请求的写入数据写入目标数据库中,清除缓存空间中与写入数据匹配的数据。缓存空间中与写入数据匹配的数据可以是指与写入数据的历史版本,例如缓存空间存储的数据指示用户A关注了用户B,而数据写入请求所请求的写入数据指示用户A取消关注了用户B,则缓存空间中与写入数据匹配的数据为用户A关注了用户B,清除缓存空间中用于指示用户A关注了用户B的数据。
本申请实施例中,通过对缓存空间中与写入数据匹配的数据进行清除,可以避免在后续进行数据读取时,读取到的数据不准确的情况,提高数据显示的准确性。
S211,当接收到针对写入数据的数据读取请求时,从目标数据库中获取写入数据,将写入数据写入缓存空间,向客户端返回写入数据。
本申请实施例中,由于对缓存空间中与写入数据匹配的数据进行了清理,因此在接收到针对写入数据的数据读取请求时,由于缓存空间中不存在写入数据,则可以从目标数据库中获取该写入数据,将写入数据写入缓存空间,进而可以向客户端返回写入数据,实现客户端的数据显示。写入数据可以是指目标数据。
通过在接收到针对写入数据的数据读取请求时,从目标数据库中获取写入数据并写入缓存空间,由于该写入数据是从目标数据库中读取到的,因此可以保证目标数据库中的写入数据与缓存空间的写入数据的一致性,提高数据显示的准确性。
在一个实施例中,若数据请求不为数据读取请求,还可以确定缓存空间中是否存在与写入数据相同的缓存数据;若缓存空间中存在与写入数据相同的缓存数据,则向客户端返回写入数据。
其中,当接收到数据写入请求时,确定缓存空间中是否存在与写入数据相同的缓存数据。若缓存空间中不存在与写入数据相同的缓存数据,则将数据写入请求所请求的写入数据写入目标数据库中,清除缓存空间中与写入数据匹配的数据;当接收到针对写入数据的数据读取请求时,从目标数据库中获取写入数据,将写入数据写入缓存空间,向客户端返回写入数据。若缓存空间存在与写入数据相同的缓存数据,则可以无需对缓存空间中的写入数据进行清理,后续可以直接将缓存空间的写入数据返回至客户端,节省数据显示效率。
本申请实施例中,通过判断数据请求是数据读取请求还是数据写入请求,若为数据写入请求,则可以将数据写入请求所请求的数据写入目标数据库,并清除缓存空间中对应的数据,从而保证缓存空间和目标数据库中数据的一致性。若为数据读取请求,则判断该数据读取请求是否命中缓存,若命中缓存则可以直接将数据读取请求所请求的数据返回至客户端,提升数据显示效率,降低数据显示延迟。进一步地,若未命中缓存则可以将数据写入图存储系统的缓存空间,进而将数据返回至客户端。
本申请实施例中,在将数据写入图存储系统的缓存空间时,通过进一步判断缓存空间已占用的内存与第一限制阈值和第二限制阈值之间的关系,可以确定缓存空间当前的使用率,从而确定将目标数据写入缓存空间的时机。若缓存空间当前的内存占用空间小于第一限制阈值,表示缓存空间的内存足够,可以直接将数据写入缓存空间。若缓存空间当前的内存占用空间大于或等于第一限制阈值且小于第二限制阈值,则将数据写入缓存空间时,可以标记缓存空间需要异步清理,例如设定一个清理时长(即时长阈值)来实现对缓存空间的异步清理。通过在清理时长内进行清理,可以避免占用CPU使用时间,提高数据处理效率。进一步地,若缓存空间当前的内存占用空间大于硬限制值,则按照目标清理规则进行数据清理,使得清理后的缓存空间接近第一限制阈值,并将数据写入缓存空间。由于将缓存空间清理至接近于第一限制阈值,可以避免很快缓存空间的占用率又达到第二限制阈值,可以提高缓存空间清理效率,并且提高数据显示效率,进而提升用户体验。
上面介绍了本申请实施例的方法,下面介绍本申请实施例的装置。
参见图5,图5是本申请实施例提供的一种数据缓存装置的组成结构示意图,上述数据缓存装置可以部署于图存储系统中,图存储系统可以运行于计算机设备上;该数据缓存装置可以用于执行本申请实施例提供的数据缓存方法中的相应步骤。该数据缓存装置50包括:
数据读取单元501,用于当接收到数据读取请求时,确定该数据读取请求是否命中缓存,该命中缓存是指该数据读取请求所请求的目标数据存在于缓存空间;
数据命中单元502,用于若该数据读取请求命中缓存,则向客户端返回该目标数据;
策略确定单元503,用于若该数据读取请求未命中缓存,则从目标数据库中读取该目标数据,基于该缓存空间的内存占用数据与至少两个预设限制阈值确定针对该缓存空间的数据写入策略;
数据写入单元504,用于基于该数据写入策略将该目标数据写入该缓存空间,并向该客户端返回该目标数据。
可选地,该至少两个预设限制阈值包括第一限制阈值;该策略确定单元503,用于:
若该缓存空间的内存占用数据小于该第一限制阈值,则确定针对该缓存空间的数据写入策略为直接写入策略,该直接写入策略用于将该目标数据写入该缓存空间;
将该目标数据写入该缓存空间。
可选地,该至少两个预设限制阈值包括第一限制阈值和第二限制阈值,该第一限制阈值小于该第二限制阈值;该策略确定单元503,用于:
若该缓存空间的内存占用数据大于或等于该第一限制阈值且小于该第二限制阈值,则确定针对该缓存空间的数据写入策略为标记清理策略;该标记清理策略用于将该目标数据写入该缓存空间,并标记针对该缓存空间的数据清理任务,该数据清理任务用于在时长阈值内采用目标清理规则对该缓存空间的数据进行清理。
可选地,该至少两个预设限制阈值包括第二限制阈值;该策略确定单元503,用于:
若该缓存空间的内存占用数据大于或等于该第二限制阈值,则确定针对该缓存空间的数据写入策略为缓存清除策略;该缓存清除策略用于对该缓存空间进行清理后再写入该目标数据;
采用目标清理规则对该缓存空间的数据进行清理,以使该缓存空间的内存占用数据小于或等于该第一限制阈值;
将该目标数据写入该缓存空间。
可选地,该至少两个预设限制阈值包括第一限制阈值;该数据缓存装置50还包括:阈值确定单元505,用于:
检测该目标数据的数据写入速度;
若该数据写入速度大于速度阈值,则确定该第一限制阈值为第一数值;
若该数据写入速度小于或等于该速度阈值,则确定该第一限制阈值为第二数值,该第一数值小于该第二数值。
可选地,该数据缓存装置50还包括:数据清除单元506,用于:
当接收到数据写入请求时,将该数据写入请求所请求的写入数据写入该目标数据库中,清除该缓存空间中与该写入数据匹配的数据;
当接收到针对该写入数据的数据读取请求时,从该目标数据库中获取该写入数据,将该写入数据写入该缓存空间,向该客户端返回该写入数据。
可选地,该数据清除单元506,还用于:
当接收到数据写入请求时,确定该缓存空间中是否存在与该写入数据相同的缓存数据;
若该缓存空间中存在与该写入数据相同的缓存数据,则向该客户端返回该写入数据。
需要说明的是,图5对应的实施例中未提及的内容可参见方法实施例的描述,这里不再赘述。
本申请实施例中,由于在接收到数据读取请求时,确定数据读取请求是否命中缓存,若数据读取请求命中缓存则直接向客户端返回目标数据,可以加快数据显示效率。进一步地,若数据读取请求未命中缓存,则从数据库中读取目标数据,并基于缓存空间的内存占用情况与至少两个预设限制阈值之间的关系确定针对缓存空间的数据写入策略,基于对应的数据写入策略将目标数据写入缓存空间,将写入后的目标数据返回至客户端进行数据显示。由于在将目标数据写入缓存空间时,对缓存空间当前的内存占用情况与两个预设限制阈值进行了比较,针对缓存空间的内存占用情况不同确定的数据写入策略也不同,可以避免直接将目标数据写入缓存空间导致缓存空间过度占用的情况,可以降低数据显示时延,提升数据显示效率。
参见图6,图6是本申请实施例提供的一种计算机设备的组成结构示意图。如图6所示,上述计算机设备60可以包括:处理器601,网络接口604和存储器605,此外,上述计算机设备60还可以包括:用户接口603,和至少一个通信总线602。其中,通信总线602用于实现这些组件之间的连接通信。其中,用户接口603可以包括显示屏(Display)、键盘(Keyboard),可选的用户接口603还可以包括标准的有线接口、无线接口。网络接口604可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器605可以是高速RAM存储器,也可以是非易失性的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器605可选的还可以是至少一个位于远离前述处理器601的存储装置。如图6所示,作为一种计算机可读存储介质的存储器605中可以包括操作系统、网络通信模块、用户接口模块以及设备控制应用程序。
在图6所示的计算机设备60中,网络接口604可提供网络通讯功能;而用户接口603主要用于为用户提供输入的接口;而处理器601可以用于调用存储器605中存储的设备控制应用程序,以执行以下操作:
当接收到数据读取请求时,确定该数据读取请求是否命中缓存,该命中缓存是指该数据读取请求所请求的目标数据存在于缓存空间;
若该数据读取请求命中缓存,则向客户端返回该目标数据;
若该数据读取请求未命中缓存,则从目标数据库中读取该目标数据,基于该缓存空间的内存占用数据与至少两个预设限制阈值确定针对该缓存空间的数据写入策略;
基于该数据写入策略将该目标数据写入该缓存空间,并向该客户端返回该目标数据。
应当理解,本申请实施例中所描述的计算机设备60可执行前文图3和图4所对应实施例中对上述数据缓存方法的描述,也可执行前文图5所对应实施例中对上述数据缓存装置的描述,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
本申请实施例中,由于在接收到数据读取请求时,确定数据读取请求是否命中缓存,若数据读取请求命中缓存则直接向客户端返回目标数据,可以加快数据显示效率。进一步地,若数据读取请求未命中缓存,则从数据库中读取目标数据,并基于缓存空间的内存占用情况与至少两个预设限制阈值之间的关系确定针对缓存空间的数据写入策略,基于对应的数据写入策略将目标数据写入缓存空间,将写入后的目标数据返回至客户端进行数据显示。由于在将目标数据写入缓存空间时,对缓存空间当前的内存占用情况与两个预设限制阈值进行了比较,针对缓存空间的内存占用情况不同确定的数据写入策略也不同,可以避免直接将目标数据写入缓存空间导致缓存空间过度占用的情况,可以降低数据显示时延,提升数据显示效率。
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序包括程序指令,该程序指令当被计算机执行时使该计算机执行如前述实施例的方法,该计算机可以为上述提到的计算机设备的一部分。例如为上述的处理器601。作为示例,程序指令可被部署在一个计算机设备上执行,或者被部署位于一个地点的多个计算机设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算机设备上执行,分布在多个地点且通过通信网络互连的多个计算机设备可以组成区块链网络。
本领域普通技术人员可以理解实现上述实施例的方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该的程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,该的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。
Claims (10)
1.一种数据缓存方法,其特征在于,所述方法包括:
当接收到数据读取请求时,确定所述数据读取请求是否命中缓存,所述命中缓存是指所述数据读取请求所请求的目标数据存在于缓存空间;
若所述数据读取请求命中缓存,则向客户端返回所述目标数据;
若所述数据读取请求未命中缓存,则从目标数据库中读取所述目标数据,基于所述缓存空间的内存占用数据与至少两个预设限制阈值确定针对所述缓存空间的数据写入策略;
基于所述数据写入策略将所述目标数据写入所述缓存空间,并向所述客户端返回所述目标数据。
2.根据权利要求1所述的方法,其特征在于,所述至少两个预设限制阈值包括第一限制阈值和第二限制阈值,所述第一限制阈值小于所述第二限制阈值;
所述基于所述缓存空间的内存占用数据与至少两个预设限制阈值确定针对所述缓存空间的数据写入策略,包括:
若所述缓存空间的内存占用数据小于所述第一限制阈值,则确定针对所述缓存空间的数据写入策略为直接写入策略,所述直接写入策略用于将所述目标数据写入所述缓存空间。
3.根据权利要求1所述的方法,其特征在于,所述至少两个预设限制阈值包括第一限制阈值和第二限制阈值,所述第一限制阈值小于所述第二限制阈值;
所述基于所述缓存空间的内存占用数据与至少两个预设限制阈值确定针对所述缓存空间的数据写入策略,包括:
若所述缓存空间的内存占用数据大于或等于所述第一限制阈值且小于所述第二限制阈值,则确定针对所述缓存空间的数据写入策略为标记清理策略;所述标记清理策略用于将所述目标数据写入所述缓存空间,并标记针对所述缓存空间的数据清理任务,所述数据清理任务用于在时长阈值内采用目标清理规则对所述缓存空间的数据进行清理。
4.根据权利要求1所述的方法,其特征在于,所述至少两个预设限制阈值包括第一限制阈值和第二限制阈值,所述第一限制阈值小于所述第二限制阈值;
所述基于所述缓存空间的内存占用数据与至少两个预设限制阈值确定针对所述缓存空间的数据写入策略,包括:
若所述缓存空间的内存占用数据大于或等于所述第二限制阈值,则确定针对所述缓存空间的数据写入策略为缓存清除策略;所述缓存清除策略用于对所述缓存空间进行清理后再写入所述目标数据;
所述基于所述数据写入策略将所述目标数据写入所述缓存空间,包括:
采用目标清理规则对所述缓存空间的数据进行清理,以使所述缓存空间的内存占用数据小于或等于所述第一限制阈值;
将所述目标数据写入所述缓存空间。
5.根据权利要求1-4任一项所述的方法,其特征在于,若所述至少两个预设限制阈值包括第一限制阈值;所述基于所述缓存空间的内存占用数据与至少两个预设限制阈值确定针对所述缓存空间的数据写入策略之前,还包括:
检测所述目标数据的数据写入速度;
若所述数据写入速度大于速度阈值,则确定所述第一限制阈值为第一数值;
若所述数据写入速度小于或等于所述速度阈值,则确定所述第一限制阈值为第二数值,所述第一数值小于所述第二数值。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
当接收到数据写入请求时,将所述数据写入请求所请求的写入数据写入所述目标数据库中,清除所述缓存空间中与所述写入数据匹配的数据;
当接收到针对所述写入数据的数据读取请求时,从所述目标数据库中获取所述写入数据,将所述写入数据写入所述缓存空间,向所述客户端返回所述写入数据。
7.根据权利要求5所述的方法,其特征在于,所述方法还包括:
当接收到数据写入请求时,确定所述缓存空间中是否存在与所述写入数据相同的缓存数据;
若所述缓存空间中存在与所述写入数据相同的缓存数据,则向所述客户端返回所述写入数据。
8.一种数据缓存装置,其特征在于,包括:
数据读取单元,用于当接收到数据读取请求时,确定所述数据读取请求是否命中缓存,所述命中缓存是指所述数据读取请求所请求的目标数据存在于缓存空间;
数据命中单元,用于若所述数据读取请求命中缓存,则向客户端返回所述目标数据;
策略确定单元,用于若所述数据读取请求未命中缓存,则从目标数据库中读取所述目标数据,基于所述缓存空间的内存占用数据与至少两个预设限制阈值确定针对所述缓存空间的数据写入策略;
数据写入单元,用于基于所述数据写入策略将所述目标数据写入所述缓存空间,并向所述客户端返回所述目标数据。
9.一种计算机设备,其特征在于,包括:处理器、存储器以及网络接口;
所述处理器与所述存储器、所述网络接口相连,其中,所述网络接口用于提供数据通信功能,所述存储器用于存储程序代码,所述处理器用于调用所述程序代码,以使得所述计算机设备执行权利要求1-7任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序适于由处理器加载并执行,以使得具有所述处理器的计算机设备执行权利要求1-7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211274786.7A CN117785933A (zh) | 2022-10-18 | 2022-10-18 | 一种数据缓存方法、装置、设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211274786.7A CN117785933A (zh) | 2022-10-18 | 2022-10-18 | 一种数据缓存方法、装置、设备及可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117785933A true CN117785933A (zh) | 2024-03-29 |
Family
ID=90387724
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211274786.7A Pending CN117785933A (zh) | 2022-10-18 | 2022-10-18 | 一种数据缓存方法、装置、设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117785933A (zh) |
-
2022
- 2022-10-18 CN CN202211274786.7A patent/CN117785933A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110032567B (zh) | 报表查询方法、装置、服务器和存储介质 | |
CN111159436B (zh) | 一种推荐多媒体内容的方法、装置及计算设备 | |
CN105205014B (zh) | 一种数据存储方法和装置 | |
US10489476B2 (en) | Methods and devices for preloading webpages | |
CN113010818B (zh) | 访问限流方法、装置、电子设备及存储介质 | |
CN106844740B (zh) | 基于内存对象缓存系统的数据预读方法 | |
EP3089039B1 (en) | Cache management method and device | |
CN107451853B (zh) | 一种红包实时派发的方法、装置、系统及存储介质 | |
CN101493826A (zh) | 基于web应用的数据库系统及其数据管理方法 | |
CN107301215B (zh) | 一种搜索结果缓存方法及装置、搜索方法及装置 | |
CN103607312A (zh) | 用于服务器系统的数据请求处理方法及系统 | |
CN107911799B (zh) | 一种利用智能路由的方法 | |
CN111737168A (zh) | 一种缓存系统、缓存处理方法、装置、设备及介质 | |
US10489074B1 (en) | Access rate prediction in a hybrid storage device | |
EP3115904B1 (en) | Method for managing a distributed cache | |
CN108471385B (zh) | 一种针对分布式系统的流量控制方法及装置 | |
CN110191168A (zh) | 在线业务数据的处理方法、装置、计算机设备和存储介质 | |
CN105376269B (zh) | 虚拟机存储系统及其实现方法和装置 | |
EP3049940A1 (en) | Data caching policy in multiple tenant enterprise resource planning system | |
CN113835616A (zh) | 应用的数据管理方法、系统和计算机设备 | |
CN112600761A (zh) | 一种资源分配的方法、装置及存储介质 | |
US8082342B1 (en) | Discovery of short-term and emerging trends in computer network traffic | |
CN111930305A (zh) | 数据的存储方法和装置、存储介质、电子装置 | |
CN111966938A (zh) | 一种实现云平台前端页面加载速度提升的配置方法及系统 | |
CN108512768B (zh) | 一种访问量的控制方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |