[发明专利]一种对缓存数据的操作方法和装置有效
申请号: | 201210407457.5 | 申请日: | 2012-10-23 |
公开(公告)号: | CN103019956A | 公开(公告)日: | 2013-04-03 |
发明(设计)人: | 杨帆 | 申请(专利权)人: | 北京奇虎科技有限公司;奇智软件(北京)有限公司 |
主分类号: | G06F12/08 | 分类号: | G06F12/08 |
代理公司: | 中科专利商标代理有限责任公司 11021 | 代理人: | 宋焰琴 |
地址: | 100088 北京市西城区新*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 缓存 数据 操作方法 装置 | ||
技术领域
本发明涉及数据通信技术领域,具体涉及一种对缓存数据的操作方法和装置。
背景技术
目前许多大型的互联网产品和服务,已经越来越多的使用缓存技术。网站的技术人员,通常会把用户访问的热点数据,放在内存中进行缓存。当其他用户访问相同的数据时,可以直接从内存中读取,并将读取到的数据返回给用户,以避免从数据库或者磁盘等慢速设备中查找。
虽然许多缓存类的设备已经被广泛使用,但是大部分的缓存设备在存储空间不够时,都需要向操作系统重新申请一块更大空间的内存,同时释放旧的内存区域,以向这个新的内存空间中迁移或填充数据。但是这样的做法,很容易对上层应用程序带来一定的“颠簸”,即在内存扩容的时间点上,使得缓存数据全部失效,而此时所有的用户访问,都必须去数据库或者磁盘上寻找数据,从而增加了用户访问的响应时间,同时使得磁盘的访问压力瞬间过大。
本发明针对现有缓存设备在缓存扩容时出现的上述问题,提出了一种解决方案,即通过分时移动数据的策略,将当前内存空间中的数据平滑地迁移至另一内存空间中。这样既能满足缓存容量扩充的需求,又可以保证在内存扩容期间,用户能够正常地访问缓存数据;同时可以在数据流量高峰时,减轻数据库或磁盘的压力,进而增加整体服务的稳定性。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的对缓存数据进行操作的方法和装置,本发明在每次对缓存进行扩容时,不立即释放当前内存空间,而是按照一定的时间间隔(比如每隔100毫秒),缓慢的把当前内存空间的数据迁移到另一内存空间,待全部数据迁移完成后,再释放当前内存空间。
依据本发明的一个方面,提供了一种对缓存数据进行操作的方法,包括:
若第一内存空间中的数据已经写满,则判断所述第一内存空间是否为空,若否,则从所述第一内存空间中取出位于起始位置的数据,直至取出所述第一内存空间中的所有数据;若是,则释放所述第一内存空间;
对从所述第一内存空间中取出的数据进行哈希操作,得到所述数据在第二内存空间中的存储地址,将所述数据写入到所述第二内存空间的该存储地址上。
可选地,所述第二内存空间的容量大于所述第一内存空间的容量。
可选地,在所述第一内存空间被写满后,为所述第一内存空间设置一标志位以标识所述第一内存空间正在扩容中。
可选地,当第一内存空间中的数据已经写满时,每隔一时间间隔判断所述第一内存空间是否为空。
可选地,将数据存储到所述第二内存空间中后,将所述第一内存空间中的该数据删除。
可选地,在内存空间缓存的数据迁移的过程中,若用户对缓存在内存空间中的数据进行访问,则先向所述第一内存空间发送读数据请求,读取失败时,再向所述第二内存空间发送读数据请求。
根据本发明的另一方面,提供了一种对缓存数据进行操作的装置,包括:
判断子装置,适于当第一内存空间中的数据已经写满时,判断所述第一内存空间是否为空;
读取子装置,适于在所述第一内存空间不为空时,从所述第一内存空间中取出位于起始位置的数据,直至取出所述第一内存空间中的所有数据;
释放子装置,适于在所述第一内存空间为空时,释放所述第一内存空间;
处理子装置,适于对从所述第一内存空间中取出的数据进行哈希操作,得到所述数据在第二内存空间中的存储地址;
写入子装置,适于将从所述第一内存空间中取出的数据写入到所述第二内存空间的该存储地址上。
可选地,所述第二内存空间的容量大于所述第一内存空间的容量。
可选地,还包括标识子装置,适于在所述第一内存空间被写满后,为所述第一内存空间设置一标志位以标识所述第一内存空间正在扩容中。
可选地,所述判断子装置当第一内存空间中的数据已经写满时,每隔一时间间隔判断所述第一内存空间是否为空。
可选地,还包括删除子装置,适于在将数据存储到所述第二内存空间中后,将所述第一内存空间中的该数据删除。
可选地,还包括控制子装置,适于在内存空间缓存的数据迁移的过程中,若用户对缓存在内存空间中的数据进行访问,则控制先向所述第一内存空间发送读数据请求,读取失败时,再向所述第二内存空间发送读数据请求。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京奇虎科技有限公司;奇智软件(北京)有限公司,未经北京奇虎科技有限公司;奇智软件(北京)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210407457.5/2.html,转载请声明来源钻瓜专利网。
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置