【技术实现步骤摘要】
本专利技术涉及数据通信
,具体涉及一种对缓存数据的操作方法和装置。
技术介绍
目前许多大型的互联网产品和服务,已经越来越多的使用缓存技术。网站的技术人员,通常会把用户访问的热点数据,放在内存中进行缓存。当其他用户访问相同的数据时,可以直接从内存中读取,并将读取到的数据返回给用户,以避免从数据库或者磁盘等慢速设备中查找。虽然许多缓存类的设备已经被广泛使用,但是大部分的缓存设备在存储空间不够时,都需要向操作系统重新申请一块更大空间的内存,同时释放旧的内存区域,以向这个新的内存空间中迁移或填充数据。但是这样的做法,很容易对上层应用程序带来一定的“颠簸”,即在内存扩容的时间点上,使得缓存数据全部失效,而此时所有的用户访问,都必须去数据库或者磁盘上寻找数据,从而增加了用户访问的响应时间,同时使得磁盘的访问压力瞬间过大。本专利技术针对现有缓存设备在缓存扩容时出现的上述问题,提出了一种解决方案,即通过分时移动数据的策略,将当前内存空间中的数据平滑地迁移至另一内存空间中。这样既能满足缓存容量扩充的需求,又可以保证在内存扩容期间,用户能够正常地访问缓存数据;同时可以在数据流 ...
【技术保护点】
一种对缓存数据进行操作的方法,包括:若第一内存空间中的数据已经写满,则判断所述第一内存空间是否为空,若否,则从所述第一内存空间中取出位于起始位置的数据,直至取出所述第一内存空间中的所有数据;若是,则释放所述第一内存空间;对从所述第一内存空间中取出的数据进行哈希操作,得到所述数据在第二内存空间中的存储地址,将所述数据写入到所述第二内存空间的该存储地址上。
【技术特征摘要】
1.一种对缓存数据进行操作的方法,包括若第一内存空间中的数据已经写满,则判断所述第一内存空间是否为空,若否,则从所述第一内存空间中取出位于起始位置的数据,直至取出所述第一内存空间中的所有数据; 若是,则释放所述第一内存空间;对从所述第一内存空间中取出的数据进行哈希操作,得到所述数据在第二内存空间中的存储地址,将所述数据写入到所述第二内存空间的该存储地址上。2.如权利要求1所述的方法,其特征在于,所述第二内存空间的容量大于所述第一内存空间的容量。3.如权利要求2所述的方法,其特征在于,在所述第一内存空间被写满后,为所述第一内存空间设置一标志位以标识所述第一内存空间正在扩容中。4.如权利要求1所述的方法,其特征在于,当第一内存空间中的数据已经写满时,每隔一时间间隔判断所述第一内存空间是否为空。5.如权利要求1所述的方法,其特征在于,将数据存储到所述第二内存空间中后,将所述第一内存空间中的该数据删除。6.如权利要求1所述的方法,其特征在于,在内存空间缓存的数据迁移的过程中,若用户对缓存在内存空间中的数据进行访问,则先向所述第一内存空间发送读数据请求,读取失败时,再向所述第二内存空间发送读数据请求。7.一种对缓存数据进行操作的装置,包括判断子装置,适于当第一内存空间中的数据已经写满时,判断所述第一内存空间是否为...
【专利技术属性】
技术研发人员:杨帆,
申请(专利权)人:北京奇虎科技有限公司,奇智软件北京有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。