[发明专利]一种数据缓存方法在审
| 申请号: | 201510701385.9 | 申请日: | 2015-10-26 |
| 公开(公告)号: | CN105243030A | 公开(公告)日: | 2016-01-13 |
| 发明(设计)人: | 尧津来 | 申请(专利权)人: | 北京锐安科技有限公司 |
| 主分类号: | G06F12/0871 | 分类号: | G06F12/0871 |
| 代理公司: | 北京品源专利代理有限公司 11332 | 代理人: | 胡彬;孟金喆 |
| 地址: | 100044 北京市海淀区西小口*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 数据 缓存 方法 | ||
技术领域
本发明实施例涉及数据存储技术,尤其涉及一种数据缓存方法。
背景技术
现有的计算机,为了提高数据访问速度,需要把要访问的数据写入内存中,再进行访问。内存的空间有限,因此需要定期的清理过期数据,以提供足够的内存空间。
现有技术中的缓存方法为,当接收到要访问的数据时,首先与已有内存中存储的数据进行比较,若已存在该数据,则抛弃该数据,可直接访问内存中的已有数据,若否,则将该数据写入内存中。每隔一定时间扫描内存数据,将存储时间超过设定值的过期数据删除。上述缓存使用方案,可应用于各种场景,例如应用于流量分析统计,即需要访问的数据是流量,当内存中已存在该数据时,可以对该数据进行计次统计。
上述方案,由于需要将数据与所有内存的数据进行比较,因此效率较低,且由于定期清理内存,会使得内存突然减小,当要访问的数据量大时,内存又会突然增大,因此导致内存容易抖动。
发明内容
本发明实施例提供一种数据缓存方法,以提高缓存效率,且避免内存抖动。
本发明实施例提供了一种数据缓存方法,该数据缓存方法包括:
初始化内存,以建立第一链表、哈希表和第二链表,所述第一链表的节点用于存储内存中各存储单元的存储地址,所述哈希表的节点用于存储数据的哈希值,所述第二链表的节点用于按照数据的存储顺序存储对应存储单元的存储地址;
接收到访问数据时,计算所述数据的哈希值,与所述哈希表中的哈希值进行比对;
若不存在比对一致的哈希值,则从所述第一链表中获取空闲存储单元的存储地址,将所述数据存储至所述空闲存储单元中,且将该空闲存储单元的存储地址顺序存储至第二链表中,并将所述数据的哈希值存储至所述哈希表中;
若存在比对一致的哈希值,则停止所述访问数据向所述内存的写入操作。
进一步的,所述第二链表为单链表
进一步的,在从所述第一链表中获取空闲存储单元的存储地址之前,还包括:
判断所述第一链表中是否存在空闲存储单元的存储地址,若是,则执行存储操作,若否,则获取所述第二链表的头节点;
将所述头节点中的存储地址清空,将清空的存储地址对应存储数据的哈希值,从所述哈希表中删除;
将所述数据存储至清空的存储地址对应的存储单元中,且将所述数据的哈希值存储至所述哈希表中
将所述头节点后的下一个节点更新为所述第二链表的头节点。
进一步的,初始化内存,以建立第一链表、哈希表和第二链表包括:
根据待访问数据的流量和时间有效性设置所述第一链表、哈希表和第二链表的节点数量。
本发明通过设置第一链表和第二链表,以循环方式删除最早存储的数据,使得内存的大小不会出现突然的增加或减小,因此避免了内存抖动现象。在存储访问的数据时,仅比较数据的哈希值,而无需比较所有数据,可提高比对的效率和速度。
附图说明
图1是本发明实施例一中提供的数据缓存方法流程图;
图2是本发明实施例二中提供的数据缓存方法流程图;
图3是本发明结合实施例一和实施例二提供的数据缓存方法流程图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例一
图1是本发明实施例一中提供的数据缓存方法流程图,本实施例可适用于任意数据缓存的情况,该方法可以由配置于终端的数据处理装置来执行,具体包括如下步骤:
S110、初始化内存,以建立第一链表、哈希表和第二链表,所述第一链表的节点用于存储内存中各存储单元的存储地址,所述哈希表的节点用于存储数据的哈希值,所述第二链表的节点用于按照数据的存储顺序存储对应存储单元的存储地址;
其中,该第二链表节点中存储地址的储存顺序可以为读入时间顺序,最先读入的存入该第二链表的头节点,其他节点以此类推,将访问数据的存储地址保存在第二链表中,该存储方式方便内存中的数据根据存入时间的先后进行不断更新。该第二链表可以是双链表,优选是单链表通过头尾两个指针实现对链表内访问。
为提高缓存效率,初始化内存,以建立第一链表、哈希表和第二链表还可以包括:根据待访问数据的流量和时间有效性设置所述第一链表、哈希表和第二链表的节点数量。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京锐安科技有限公司,未经北京锐安科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510701385.9/2.html,转载请声明来源钻瓜专利网。
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置





