[发明专利]缓存数据的方法有效
申请号: | 201010297337.5 | 申请日: | 2010-09-29 |
公开(公告)号: | CN102436421A | 公开(公告)日: | 2012-05-02 |
发明(设计)人: | 朱正平;沈妍 | 申请(专利权)人: | 腾讯科技(深圳)有限公司 |
主分类号: | G06F12/08 | 分类号: | G06F12/08 |
代理公司: | 广州华进联合专利商标代理有限公司 44224 | 代理人: | 何平;曾旻辉 |
地址: | 518044 广东省深圳*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 缓存 数据 方法 | ||
【技术领域】
本发明涉及缓存技术,尤其是涉及一种缓存数据的方法。
【背景技术】
在计算机技术中,通常都要用到缓存技术,比如计算的中间结果来不及被及时处理,都要进行临时存储。
传统的通用缓存技术在内存不足时会使用一些策略删除那些可能不会被再次用到的数据,比如最近最少使用策略,将最近一段时间内使用得最少的数据淘汰。内存最开始一般是连续分配的,当进行小数据存储时,若内存不足,则会淘汰一些小数据。小数据被淘汰后,其之前所占据的内存空间被释放。经过多次的存储、删除操作后,内存中会出现很多不连续的小的内存空间,即产生内存碎片。这些小的内存空间总和虽然大于一定的数值,但是却不能用于存储这个数值的,甚至不能用于存储小于这个数值的较大的数据,因此会浪费内存。
【发明内容】
鉴于上述问题,有必要提供一种缓存数据的方法,可以有效存取较小的数据,提高内存利用率。
一种缓存数据的方法,包括以下步骤:从内存中划分出过渡内存块;判断过渡内存块的剩余空间是否足够存储缓存数据,如果是,则将缓存数据存入过渡内存块;否则将过渡内存块中的数据进行压缩后存入缓存区,并清空过渡内存块中的数据。
优选地,所述缓存区包括缓存块,每当当前用于存储的缓存块容量不足以存储压缩后的缓存数据时,从内存中划分一个新的缓存块。
优选地,还包括将所述过渡内存块划分为块头和块体的步骤,所述块头用于记录块体的状态信息,所述块体用于存储缓存数据;所述方法还包括将所述缓存块划分为块头和块体的步骤,所述缓存块的块头用于记录缓存块的块体的状态信息,所述缓存块的块体用于存储包括过渡内存块的块头信息和过渡内存块的块体中的缓存数据的压缩数据的压缩块。
优选地,当内存不足以划分出新的缓存块时,从缓存区中查找有效数据长度最小的两个缓存块,将所述两个缓存块中具有最多有效数据的压缩块集中存入其中一个缓存块,将另一个缓存块中的所有数据清除。
优选地,还包括:采用哈希映射表记录键值与缓存数据在过渡内存块或缓存块中的位置信息的映射关系;所述位置信息包括为过渡内存块和缓存块分配的块编号,以及缓存数据在过渡内存块或压缩块中的第一偏移地址。
优选地,还包括采用块编号-压缩块信息映射表记录块编号和压缩块信息的映射关系的步骤:当压缩块存入缓存块时,将压缩块的块编号和压缩块信息对应记录在块编号-压缩块信息映射表中,所述压缩块信息包括压缩块所在缓存块的块编号和压缩块在缓存块中的第二偏移地址。
优选地,还包括删除缓存数据的步骤,具体为:根据哈希映射表由键值获得块编号和第一偏移地址;若所述块编号与过渡内存块的块编号相同,则修改过渡内存块的块头内的块体的状态信息;否则根据所述块编号查找块编号-压缩块信息映射表,若查找到压缩块信息,则修改压缩块的块头信息和压缩块所在缓存块的块头信息;从哈希映射表中删除所述键值。
优选地,还包括查询缓存数据的步骤,具体为:根据哈希映射表由键值获得块编号和第一偏移地址;若所述块编号与过渡内存块的块编号相同,则根据所述块编号和第一偏移地址得到缓存数据在过渡内存块中的位置,根据该位置从过渡内存块中读取缓存数据;否则根据所述块编号查找块编号-压缩块信息映射表,若查找到压缩块信息,则根据压缩块信息中包含的缓存块的块编号和第二偏移地址从缓存块中读取压缩块,然后结合第一偏移地址从解压缩后的数据中读取所需的缓存数据。
上述方法,由于较小的缓存数据是先在过渡内存块中存储,然后作为一个整体存入缓存区,因此可以将小数据合并成大数据进行存取。消除了小数据在内存中因为进行频繁存储、删除而导致的内存碎片。此外对缓存数据进行压缩,还可进一步更好地利用内存空间。
【附图说明】
图1为一实施例的缓存数据的方法流程图;
图2为过渡内存块和缓存块的示意图;
图3为获取缓存数据存储位置的示意图;
图4为合并缓存块中的压缩块的示意图。
【具体实施方式】
以下结合附图进行进一步说明。
如图1所示,为一实施例的缓存数据的方法流程图。该方法包括以下步骤:
S10:从内存中划分出过渡内存块。过渡内存块是从内存中划分出来的一块存储区域,用于暂时存储缓存数据。本实施例的缓存数据的方法用于对小数据进行缓存,即对大小为1字节至8000字节的数据进行缓存,过渡内存块必须至少能够存储可能存储的最大数据的长度,即需大于或等于8000字节。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司,未经腾讯科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201010297337.5/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种蛋氨酸寡肽及其在对虾饲料中的应用
- 下一篇:一种生物增效剂
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置