CN104216838A - 双缓存数据处理方法及系统 - Google Patents

双缓存数据处理方法及系统 Download PDF

Info

Publication number
CN104216838A
CN104216838A CN201310220458.3A CN201310220458A CN104216838A CN 104216838 A CN104216838 A CN 104216838A CN 201310220458 A CN201310220458 A CN 201310220458A CN 104216838 A CN104216838 A CN 104216838A
Authority
CN
China
Prior art keywords
buffer memory
target data
data
order buffer
level
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201310220458.3A
Other languages
English (en)
Inventor
李强
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Cheerbright Technologies Co Ltd
Original Assignee
Beijing Cheerbright Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Cheerbright Technologies Co Ltd filed Critical Beijing Cheerbright Technologies Co Ltd
Priority to CN201310220458.3A priority Critical patent/CN104216838A/zh
Publication of CN104216838A publication Critical patent/CN104216838A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明提供一种双缓存数据处理方法及系统,设置第一级缓存和第二级缓存;第一级缓存按照最近访问量的高低排序所存储的数据;当向第一级缓存中存储数据导致超过最大存储量时,按照LRU算法将第一级缓存中最近最少使用的数据转移到第二级缓存,当需要下载目标数据时,首先读取所述第一级缓存,判断所述第一级缓存中是否存储所述目标数据,如果存储,则直接从所述第一级缓存中下载所述目标数据;如果没有存储,则进一步判断所述第二级缓存中是否存储所述目标数据,如果存储,则从所述第二级缓存中下载所述目标数据;如果没有存储,则从网络上下载所述目标数据。能够有效减少缓存与CPU之间的交互,从而减轻CPU的处理压力;而且,还能够保证快速准确的获得所请求的资源。

Description

双缓存数据处理方法及系统
技术领域
本发明属于数据处理技术领域,具体涉及一种双缓存数据处理方法及系统。
背景技术
缓存Cache是一种高速缓冲存储器,是为了解决CPU和主存之间速度不匹配而采用的一项重要技术。
缓存是介于CPU和主存之间的小容量存储器,但存取速度比主存快。目前主存容量配置几百MB的情况下,缓存的典型值是几百KB。缓存能高速地向CPU提供指令和数据,从而加快了程序的执行速度,例如,当需要下载某项资源时,从缓存中下载的速度要远高于从网络上下载的速度,从而提高用户的下载体验。
但是,现有技术中,由于缓存容量通常较小,其存储的内容有限,因此,缓存与CPU之间需要进行频繁的数据交互,从而提高了CPU的处理压力。
发明内容
针对现有技术存在的缺陷,本发明提供一种双缓存数据处理方法,能够有效减少缓存与CPU之间的交互,从而减轻CPU的处理压力;而且,还能够保证快速准确的获得所请求的资源。
本发明采用的技术方案如下:
本发明提供一种双缓存数据处理方法,包括以下步骤:
S1,设置第一级缓存和第二级缓存;其中,所述第一级缓存按照最近访问量的高低排序所存储的数据;所述第一级缓存设置最大存储量,当向所述第一级缓存中存储数据导致超过所述最大存储量时,按照LRU算法将所述第一级缓存中最近最少使用的数据转移到所述第二级缓存;当内存空间不足时,对所述第二级缓存执行垃圾回收操作;
S2,当需要下载目标数据时,首先读取所述第一级缓存,判断所述第一级缓存中是否存储所述目标数据,如果存储,则直接从所述第一级缓存中下载所述目标数据;如果没有存储,则进一步判断所述第二级缓存中是否存储所述目标数据,如果存储,则从所述第二级缓存中下载所述目标数据;如果没有存储,则从网络上下载所述目标数据,然后执行S3;
S3,判断所述第一级缓存所存储的数据量是否达到所述最大存储容量,如果没有达到,则将所述目标数据存入所述第一级缓存;如果达到,则将所述第一级缓存中大于所述目标数据的最近最少使用数据转移到所述第二级缓存,然后将所述目标数据存入所述第一级缓存。
优选的,所述双缓存数据处理方法应用于安卓操作系统。
优选的,所述目标数据为图片文件或视频文件。
优选的,所述第一级缓存按强引用方式存储数据;所述第二级缓存按软引用方式存储数据。
优选的,S1之后,还包括:设置定时器,所述定时器按预设时间间隔清理所述第一级缓存或所述第二级缓存。
本发明还提供一种双缓存数据处理系统,包括:
第一级缓存,所述第一级缓存用于按照最近访问量的高低排序所存储的数据;所述第一级缓存设置最大存储量;
第二级缓存,所述第二级缓存用于:当向所述第一级缓存中存储数据导致超过所述最大存储量时,按照LRU算法将所述第一级缓存中最近最少使用的数据转移到所述第二级缓存;
垃圾回收器,用于当内存空间不足时,对所述第二级缓存执行垃圾回收操作;
第一判断模块,用于当需要下载目标数据时,读取所述第一级缓存,判断所述第一级缓存中是否存储所述目标数据;
第一下载模块,用于当所述第一判断模块判断结果为是时,直接从所述第一级缓存中下载所述目标数据;
第二判断模块,用于当所述第一判断模块判断结果为否时,进一步判断所述第二级缓存中是否存储所述目标数据;
第二下载模块,用于当所述第二判断模块判断结果为是时,从所述第二级缓存中下载所述目标数据;
第三下载模块,用于当所述第二判断模块判断结果为否时,从网络上下载所述目标数据;
第三判断模块,用于判断所述第一级缓存所存储的数据量是否达到所述最大存储容量;
存储模块,用于当所述第三判断模块判断结果为否时,将所述目标数据存入所述第一级缓存;还用于:当所述第三判断模块判断结果为是时,将所述第一级缓存中大于所述目标数据的最近最少使用数据转移到所述第二级缓存,然后将所述目标数据存入所述第一级缓存。
本发明的有益效果如下:
本发明提供一种双缓存数据处理方法,能够有效减少缓存与CPU之间的交互,从而减轻CPU的处理压力;而且,还能够保证快速准确的获得所请求的资源。
附图说明
图1为本发明提供的双缓存数据处理方法的流程示意图;
图2为本发明提供的双缓存数据处理系统的结构示意图。
具体实施方式
以下结合附图对本发明进行详细说明:
如图1所示,本发明提供一种双缓存数据处理方法,包括以下步骤:
S1,设置第一级缓存和第二级缓存;其中,第一级缓存按照最近访问量的高低排序所存储的数据;第一级缓存设置最大存储量,当向第一级缓存中存储数据导致超过最大存储量时,按照LRU算法将第一级缓存中最近最少使用的数据转移到第二级缓存;当内存空间不足时,对第二级缓存执行垃圾回收操作。
如果不设置第一级缓存的最大存储量,则CPU会一直向缓存中存储数据,最终会导致内存不足,即发生OOM(OutOfMemory,内存泄露)现象。因此,本发明中,控制第一级缓存的最大存储量,例如,可以设置第一级缓存最大存储量为30,当第一级缓存存储数据量超过30时,需要将第一级缓存中存储的数据移动第二级缓存。而为了提高第一级缓存的命中率,依据“使用频繁的数据很可能在后面几条指令中频繁使用;反过来说,已经很久没有使用的页面很可能在未来较长一段时间内不会被用到”原则,本发明中,对第一级缓存采用按照最近访问量高低排序,实际应用中,可以维护一张哈希映射链接表,此链接表定义了迭代顺序,该迭代顺序优选为访问顺序,当某一个数据被新访问时,则将该被新访问的数据移到链接表的顶端,提高下一次访问该数据的检索速度。
此外,对于第二级缓存,只有当内存空间不足时,才对其进行垃圾回收操作,待后续合适的时机再将被回收的数据重新存储到缓存中,该种设计可以增强系统设计的弹性,也能有效防止内存泄漏问题。
实际应用中,对于第一级缓存,采用强引用的方式设计;对于第二级缓存,采用软引用的方式设计。
S2,当需要下载目标数据时,首先读取所述第一级缓存,判断所述第一级缓存中是否存储所述目标数据,如果存储,则直接从所述第一级缓存中下载所述目标数据;如果没有存储,则进一步判断所述第二级缓存中是否存储所述目标数据,如果存储,则从所述第二级缓存中下载所述目标数据;如果没有存储,则从网络上下载所述目标数据,然后执行S3;
S3,判断所述第一级缓存所存储的数据量是否达到所述最大存储容量,如果没有达到,则将所述目标数据存入所述第一级缓存;如果达到,则将所述第一级缓存中大于所述目标数据的最近最少使用数据转移到所述第二级缓存,然后将所述目标数据存入所述第一级缓存。
如图2所示,本发明还提供一种双缓存数据处理系统,包括:
第一级缓存,所述第一级缓存用于按照最近访问量的高低排序所存储的数据;所述第一级缓存设置最大存储量;
第二级缓存,所述第二级缓存用于:当向所述第一级缓存中存储数据导致超过所述最大存储量时,按照LRU算法将所述第一级缓存中最近最少使用的数据转移到所述第二级缓存;
垃圾回收器,用于当内存空间不足时,对所述第二级缓存执行垃圾回收操作;
第一判断模块,用于当需要下载目标数据时,读取所述第一级缓存,判断所述第一级缓存中是否存储所述目标数据;
第一下载模块,用于当所述第一判断模块判断结果为是时,直接从所述第一级缓存中下载所述目标数据;
第二判断模块,用于当所述第一判断模块判断结果为否时,进一步判断所述第二级缓存中是否存储所述目标数据;
第二下载模块,用于当所述第二判断模块判断结果为是时,从所述第二级缓存中下载所述目标数据;
第三下载模块,用于当所述第二判断模块判断结果为否时,从网络上下载所述目标数据;
第三判断模块,用于判断所述第一级缓存所存储的数据量是否达到所述最大存储容量;
存储模块,用于当所述第三判断模块判断结果为否时,将所述目标数据存入所述第一级缓存;还用于:当所述第三判断模块判断结果为是时,将所述第一级缓存中大于所述目标数据的最近最少使用数据转移到所述第二级缓存,然后将所述目标数据存入所述第一级缓存。
综上所述,本发明提供的双缓存数据处理方法,具有以下优点:
(1)能够有效减少缓存与CPU之间的交互,从而减轻CPU的处理压力;提高了客户端响应速度,而且,还能够保证快速准确的获得所请求的资源。
(2)直接通过缓存加载资源,具有快速、高效的优点,从而提高了用户体验;
(3)通过缓存加载资源,较少了客户端的数据加载出错情况,大大提高了应有的稳定性;
(4)通过缓存加载资源,一定程度上可以支持离线浏览。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。

Claims (6)

1.一种双缓存数据处理方法,其特征在于,包括以下步骤:
S1,设置第一级缓存和第二级缓存;其中,所述第一级缓存按照最近访问量的高低排序所存储的数据;所述第一级缓存设置最大存储量,当向所述第一级缓存中存储数据导致超过所述最大存储量时,按照LRU算法将所述第一级缓存中最近最少使用的数据转移到所述第二级缓存;当内存空间不足时,对所述第二级缓存执行垃圾回收操作;
S2,当需要下载目标数据时,首先读取所述第一级缓存,判断所述第一级缓存中是否存储所述目标数据,如果存储,则直接从所述第一级缓存中下载所述目标数据;如果没有存储,则进一步判断所述第二级缓存中是否存储所述目标数据,如果存储,则从所述第二级缓存中下载所述目标数据;如果没有存储,则从网络上下载所述目标数据,然后执行S3;
S3,判断所述第一级缓存所存储的数据量是否达到所述最大存储容量,如果没有达到,则将所述目标数据存入所述第一级缓存;如果达到,则将所述第一级缓存中大于所述目标数据的最近最少使用数据转移到所述第二级缓存,然后将所述目标数据存入所述第一级缓存。
2.根据权利要求1所述的双缓存数据处理方法,其特征在于,所述双缓存数据处理方法应用于安卓操作系统。
3.根据权利要求1所述的双缓存数据处理方法,其特征在于,所述目标数据为图片文件或视频文件。
4.根据权利要求1所述的双缓存数据处理方法,其特征在于,所述第一级缓存按强引用方式存储数据;所述第二级缓存按软引用方式存储数据。
5.根据权利要求1所述的双缓存数据处理方法,其特征在于,S1之后,还包括:设置定时器,所述定时器按预设时间间隔清理所述第一级缓存或所述第二级缓存。
6.一种双缓存数据处理系统,其特征在于,包括:
第一级缓存,所述第一级缓存用于按照最近访问量的高低排序所存储的数据;所述第一级缓存设置最大存储量;
第二级缓存,所述第二级缓存用于:当向所述第一级缓存中存储数据导致超过所述最大存储量时,按照LRU算法将所述第一级缓存中最近最少使用的数据转移到所述第二级缓存;
垃圾回收器,用于当内存空间不足时,对所述第二级缓存执行垃圾回收操作;
第一判断模块,用于当需要下载目标数据时,读取所述第一级缓存,判断所述第一级缓存中是否存储所述目标数据;
第一下载模块,用于当所述第一判断模块判断结果为是时,直接从所述第一级缓存中下载所述目标数据;
第二判断模块,用于当所述第一判断模块判断结果为否时,进一步判断所述第二级缓存中是否存储所述目标数据;
第二下载模块,用于当所述第二判断模块判断结果为是时,从所述第二级缓存中下载所述目标数据;
第三下载模块,用于当所述第二判断模块判断结果为否时,从网络上下载所述目标数据;
第三判断模块,用于判断所述第一级缓存所存储的数据量是否达到所述最大存储容量;
存储模块,用于当所述第三判断模块判断结果为否时,将所述目标数据存入所述第一级缓存;还用于:当所述第三判断模块判断结果为是时,将所述第一级缓存中大于所述目标数据的最近最少使用数据转移到所述第二级缓存,然后将所述目标数据存入所述第一级缓存。
CN201310220458.3A 2013-06-05 2013-06-05 双缓存数据处理方法及系统 Pending CN104216838A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310220458.3A CN104216838A (zh) 2013-06-05 2013-06-05 双缓存数据处理方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310220458.3A CN104216838A (zh) 2013-06-05 2013-06-05 双缓存数据处理方法及系统

Publications (1)

Publication Number Publication Date
CN104216838A true CN104216838A (zh) 2014-12-17

Family

ID=52098350

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310220458.3A Pending CN104216838A (zh) 2013-06-05 2013-06-05 双缓存数据处理方法及系统

Country Status (1)

Country Link
CN (1) CN104216838A (zh)

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105046640A (zh) * 2015-05-14 2015-11-11 深圳市美贝壳科技有限公司 图片内存管理方法及装置
CN105988941A (zh) * 2015-02-28 2016-10-05 深圳市腾讯计算机系统有限公司 缓存数据处理方法和装置
CN106250326A (zh) * 2016-08-01 2016-12-21 浪潮(北京)电子信息产业有限公司 一种基于ssd的数据获取方法及系统
CN106528444A (zh) * 2016-12-05 2017-03-22 北京金和网络股份有限公司 内存缓存对象自动管理方法
CN106649130A (zh) * 2016-12-28 2017-05-10 乐蜜科技有限公司 内存空间回收方法、装置和电子设备
CN106802955A (zh) * 2017-01-19 2017-06-06 济南浪潮高新科技投资发展有限公司 一种图片数据缓存方法
CN109189739A (zh) * 2018-09-20 2019-01-11 北京京东尚科信息技术有限公司 缓存空间回收方法和装置
CN109446222A (zh) * 2018-08-28 2019-03-08 厦门快商通信息技术有限公司 一种双缓存的数据存储方法、装置及存储介质
CN111209308A (zh) * 2020-01-09 2020-05-29 中国建设银行股份有限公司 一种优化分布式缓存的方法和装置
CN111459852A (zh) * 2019-01-22 2020-07-28 阿里巴巴集团控股有限公司 缓存控制方法和装置以及电子设备
CN112948440A (zh) * 2021-03-09 2021-06-11 北京小米移动软件有限公司 页面数据的处理方法及装置、终端、存储介质
CN113742290A (zh) * 2021-11-04 2021-12-03 上海闪马智能科技有限公司 一种数据存储方法、装置、存储介质及电子装置
CN113836053A (zh) * 2021-09-07 2021-12-24 上海砹芯科技有限公司 信息获取方法、装置和电子设备
CN113946591A (zh) * 2021-12-20 2022-01-18 北京力控元通科技有限公司 一种热点数据缓存方法、系统及电子设备
CN116342371A (zh) * 2023-03-24 2023-06-27 摩尔线程智能科技(北京)有限责任公司 用于gpu、二级缓存的方法和gpu、二级缓存

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1852318A (zh) * 2006-04-19 2006-10-25 华中科技大学 适用于对象网络存储的分布式多级缓存系统
CN1967507A (zh) * 2005-11-18 2007-05-23 国际商业机器公司 数据存储控制器及用于管理其中的高速缓存数据的方法
CN101794259A (zh) * 2010-03-26 2010-08-04 成都市华为赛门铁克科技有限公司 数据存储方法和装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1967507A (zh) * 2005-11-18 2007-05-23 国际商业机器公司 数据存储控制器及用于管理其中的高速缓存数据的方法
CN1852318A (zh) * 2006-04-19 2006-10-25 华中科技大学 适用于对象网络存储的分布式多级缓存系统
CN101794259A (zh) * 2010-03-26 2010-08-04 成都市华为赛门铁克科技有限公司 数据存储方法和装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
GILLES DEBUNNE: "ImageDownloader.java", 《HTTPS://ANDROID.GOOGLESOURCE.COM/PLATFORM/DEVELOPMENT/+BLAME/55F4A60AA0DC1C2FC5EF58DF185C9426C262E0BA/SAMPLES/XMLADAPTERS/SRC/COM/EXAMPLE/ANDROID/XMLADAPTERS/IMAGEDOWNLOADER.JAVA#1》 *

Cited By (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105988941A (zh) * 2015-02-28 2016-10-05 深圳市腾讯计算机系统有限公司 缓存数据处理方法和装置
CN105988941B (zh) * 2015-02-28 2020-04-14 深圳市腾讯计算机系统有限公司 缓存数据处理方法和装置
CN105046640A (zh) * 2015-05-14 2015-11-11 深圳市美贝壳科技有限公司 图片内存管理方法及装置
CN106250326A (zh) * 2016-08-01 2016-12-21 浪潮(北京)电子信息产业有限公司 一种基于ssd的数据获取方法及系统
CN106250326B (zh) * 2016-08-01 2019-05-10 浪潮(北京)电子信息产业有限公司 一种基于ssd的数据获取方法及系统
CN106528444A (zh) * 2016-12-05 2017-03-22 北京金和网络股份有限公司 内存缓存对象自动管理方法
CN106649130A (zh) * 2016-12-28 2017-05-10 乐蜜科技有限公司 内存空间回收方法、装置和电子设备
CN106802955A (zh) * 2017-01-19 2017-06-06 济南浪潮高新科技投资发展有限公司 一种图片数据缓存方法
CN109446222A (zh) * 2018-08-28 2019-03-08 厦门快商通信息技术有限公司 一种双缓存的数据存储方法、装置及存储介质
CN109189739A (zh) * 2018-09-20 2019-01-11 北京京东尚科信息技术有限公司 缓存空间回收方法和装置
CN111459852B (zh) * 2019-01-22 2023-05-05 阿里巴巴集团控股有限公司 缓存控制方法和装置以及电子设备
CN111459852A (zh) * 2019-01-22 2020-07-28 阿里巴巴集团控股有限公司 缓存控制方法和装置以及电子设备
CN111209308A (zh) * 2020-01-09 2020-05-29 中国建设银行股份有限公司 一种优化分布式缓存的方法和装置
CN111209308B (zh) * 2020-01-09 2023-06-16 建信金融科技有限责任公司 一种优化分布式缓存的方法和装置
CN112948440A (zh) * 2021-03-09 2021-06-11 北京小米移动软件有限公司 页面数据的处理方法及装置、终端、存储介质
CN113836053A (zh) * 2021-09-07 2021-12-24 上海砹芯科技有限公司 信息获取方法、装置和电子设备
CN113742290A (zh) * 2021-11-04 2021-12-03 上海闪马智能科技有限公司 一种数据存储方法、装置、存储介质及电子装置
CN113946591A (zh) * 2021-12-20 2022-01-18 北京力控元通科技有限公司 一种热点数据缓存方法、系统及电子设备
CN116342371A (zh) * 2023-03-24 2023-06-27 摩尔线程智能科技(北京)有限责任公司 用于gpu、二级缓存的方法和gpu、二级缓存
CN116342371B (zh) * 2023-03-24 2024-05-24 摩尔线程智能科技(北京)有限责任公司 用于gpu、二级缓存的方法和gpu、二级缓存

Similar Documents

Publication Publication Date Title
CN104216838A (zh) 双缓存数据处理方法及系统
US9798655B2 (en) Managing a cache on storage devices supporting compression
CN102609360B (zh) 一种数据处理方法、装置及系统
CN102014158B (zh) 一种云存储服务客户端高效细粒度数据缓存系统与方法
US9772949B2 (en) Apparatus, system and method for providing a persistent level-two cache
CN101388824B (zh) 一种机群系统中分片存储模式下文件读取的方法及系统
CN102170479A (zh) Web缓存的更新方法及Web缓存的更新装置
WO2012116369A2 (en) Apparatus, system, and method for managing contents of a cache
US20160283390A1 (en) Storage cache performance by using compressibility of the data as a criteria for cache insertion
CN108984130A (zh) 一种分布式存储的缓存读取方法及其装置
CN103513956B (zh) 一种处理器处理数据的方法以及装置
CN102999444A (zh) 一种用于替换缓存模块中数据的方法及装置
CN106649146A (zh) 一种内存释放方法及装置
US9535843B2 (en) Managed memory cache with application-layer prefetching
CN103108047A (zh) 一种对象存储系统元数据缓存的优化方法
CN117215973B (zh) 一种缓存数据的处理方法、深度学习训练方法和系统
CN107766258B (zh) 内存存储方法与装置、内存查询方法与装置
CN105915619A (zh) 顾及访问热度的网络空间信息服务高性能内存缓存方法
US20170262485A1 (en) Non-transitory computer-readable recording medium, data management device, and data management method
CN104252423B (zh) 基于多内核处理器的一致性处理方法和装置
CN111752905A (zh) 一种基于对象存储的大文件分布式缓存系统
Liang et al. Read-ahead efficiency on mobile devices: Observation, characterization, and optimization
CN103442000A (zh) Web缓存置换方法及装置、http代理服务器
Liang et al. Differentiating cache files for fine-grain management to improve mobile performance and lifetime
CN109947672B (zh) 一种基于概率分布的mlc stt-ram缓存数据管理方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20141217

RJ01 Rejection of invention patent application after publication