【技术实现步骤摘要】
缓存数据的方法、设备及存储介质
本申请涉及内存管理
,尤其涉及一种缓存数据的方法、设备及存储介质。
技术介绍
目前,主流的终端应用程序的服务器部署在数据中心,每台服务器主机处理高达数万QPS(Queries-per-second,每秒查询率)的数据请求,并且需要在尽量短的时间内返回结果。为了优化服务性能,避免频繁访问外部存储设备(如数据库、缓存集群等),服务端应用程序将频繁被访问的访问对象数据缓存到内存,以便从内存中查询该访问对象数据。服务器内存空间有限,当有新的访问对象出现时,需要按照预定的策略选择内存中的访问对象数据进行替换。ARC(Adaptivereplacementcache,自适应替换缓存)逐出算法应用场景一般是单机的文件系统或者数据库系统,其缓存的每个对象大小相同,当需要写入一个新对象时,挑选一个旧对象逐出时即可。但是,ARC算法将申请的大片内存切割成等大小的分页,每个分页用来写入一个缓存对象,但这样需要将分页设置的尽量大以容纳最大的缓存项,这会造成内存空间浪费。
技术实现思路
>本申请实施例提供一本文档来自技高网...
【技术保护点】
1.一种缓存数据的方法,其特征在于,包括:/n针对需要在设备内存中写入应用程序的访问对象数据,确定所述访问对象数据所需占用的缓存空间的分页数量,所述缓存空间为所述设备内存的部分存储空间,所述缓存空间被划分为多个大小相等的分页;/n根据所述访问对象数据所需占用的缓存空间的分页数量,从所述缓存空间未被占用的分页中确定分配给所述访问对象数据的可用分页;/n将所述访问对象数据写入所述可用分页。/n
【技术特征摘要】
1.一种缓存数据的方法,其特征在于,包括:
针对需要在设备内存中写入应用程序的访问对象数据,确定所述访问对象数据所需占用的缓存空间的分页数量,所述缓存空间为所述设备内存的部分存储空间,所述缓存空间被划分为多个大小相等的分页;
根据所述访问对象数据所需占用的缓存空间的分页数量,从所述缓存空间未被占用的分页中确定分配给所述访问对象数据的可用分页;
将所述访问对象数据写入所述可用分页。
2.根据权利要求1所述的方法,其特征在于,当需要读取已写入所述可用分页的所述访问对象数据时,所述方法还包括:
将所述访问对象数据从所述可用分页复制到复制存储空间,所述复制存储空间为预先申请的所述设备内存的部分存储空间。
3.根据权利要求2所述的方法,其特征在于,将所述访问对象数据从所述可用分页复制到复制存储空间后,所述方法还包括:
从所述复制存储空间读取所述访问对象数据之后,归还所述复制存储空间;
判断空闲的所述复制存储空间的数量是否超出阈值;
如果超出所述阈值,则释放所述复制存储空间。
4.根据权利要求1所述的方法,其特征在于,所述将所述访问对象数据写入所述可用分页,包括:
将所述访问对象数据按照指定顺序级联保存到所述可用分页。
5.根据权利要求4所述的方法,其特征在于,所述将所述访问对象数据按照指定顺序级联保存到所述可用分页,包括:
关联保存所述访问对象数据的特定关键字和所述访问对象数据对应的目标信息集合,所述特定关键字包括访问对象关键字的散列运算值,所述访问对象数据包括访问对象关键字,所述目标信息集合包括所述可用分页中的首个分页的页标识和所述访问对象数据的元信息。
6.根据权利要求1~5任一项所述的方法,其特征在于,所述方法还包括:
根据所述访问对象数据的被访问状态修改所述应用程序的访问记录,所述访问记录缓存在所述设备内存中,所述访问记录的数据结构包括访问记录数组、元素索引集合和映射关系集合:
所述访问记录数组中被占用的元素保存有所述访问对象数据的特定关键字、前序访问对象数据的特定关键字所在元素的索引和后序访问对象数据的特定关键字所在元素的索引,访问对象数据的顺序根据被访问状态确定,所述特定关键字包括访问对象关键字的散列运算值,访问对象数据包括访问对象关键字;
所述元素索引集合保存有所述访问记录数组中未被占用的元素的索引;
所述映射关系集合中关联保存访问对象数据的特定关键字和所述访问对象数据的特定关键字在访问记录数组中的元素索引。
7.根据权利要求1~5任一项所述的方法,其特征在于,所述将所述访问对象数据写入所述可用分页,包括:
按照预定的映射规则确定与所述访问对象数据所包含的关键字对应的内存分片,每个内存分片分别绑定有读写锁;
对所述内存分片加锁,以便将所述访问对象数据写入所述内存分片内的可用内存分页。
8.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取消息更新队列中的数据更新信息;
确定所述数据更新信息是否对应存储在所述缓存空间中;
若所述数据更新信息对应存储在所述缓存空间中,则根据所...
【专利技术属性】
技术研发人员:李海波,何兰州,侯爽,
申请(专利权)人:北京字节跳动网络技术有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。