CN105335102B - 一种缓存数据处理方法及装置 - Google Patents

一种缓存数据处理方法及装置 Download PDF

Info

Publication number
CN105335102B
CN105335102B CN201510654678.6A CN201510654678A CN105335102B CN 105335102 B CN105335102 B CN 105335102B CN 201510654678 A CN201510654678 A CN 201510654678A CN 105335102 B CN105335102 B CN 105335102B
Authority
CN
China
Prior art keywords
data
threshold value
life span
data block
data cached
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.)
Active
Application number
CN201510654678.6A
Other languages
English (en)
Other versions
CN105335102A (zh
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.)
Inspur Beijing Electronic Information Industry Co Ltd
Original Assignee
Inspur Beijing Electronic Information Industry 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 Inspur Beijing Electronic Information Industry Co Ltd filed Critical Inspur Beijing Electronic Information Industry Co Ltd
Priority to CN201510654678.6A priority Critical patent/CN105335102B/zh
Publication of CN105335102A publication Critical patent/CN105335102A/zh
Application granted granted Critical
Publication of CN105335102B publication Critical patent/CN105335102B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供一种缓存数据处理方法及装置,上述方法包括以下步骤:获取数据块特征值并与预设阈值进行比较并根据比较结果,对数据块进行处理;根据获取的访问缓存数据次数、第一生存时间阈值、第二生存时间阈值,确定对应的缓存数据处理策略;实现了在缓存数据运行时,由访问频率自行决定生存时间,使得缓存数据的生存时间更加合理,不经常访问的数据调出缓存,节省空间;经常访问的数据常驻缓存,提高命中率,从而加快访问速度,提高访问效率。

Description

一种缓存数据处理方法及装置
技术领域
本发明涉及缓存数据管理领域,尤其涉及一种缓存数据处理方法及装置。
背景技术
Redis出现之前,数据都直接缓存至内存;缓存数据替换、缓存数据清除等操作都需要用户程序自己管理即通过专门的缓存管理模块对缓存数据进行管理,处理起来比较麻烦,严重影响了用户体验。
随着具有强大数据管理功能的Redis出现,使得对缓存数据管理能力得到了提高,其优越性能、高速读取速度越来越受到各种应用程序青睐,多数传统数据库访问程序,也把Redis作为缓存端提高数据访问效率。
然而Redis作为内存数据库,其容量不能达到传统数据库的容量,因此如何在有限空间内,尽可能提高数据命中率来提高数据访问效率,是亟需解决的技术问题。
发明内容
本发明提供一种缓存数据处理方法及装置,以解决上述问题。
本发明提供一种缓存数据处理方法。上述方法包括以下步骤:
获取数据块特征值并与预设阈值进行比较并根据比较结果,对数据块进行处理;
根据获取的访问缓存数据次数、第一生存时间阈值、第二生存时间阈值,确定对应的缓存数据处理策略。
本发明还提供一种缓存数据处理装置,包括获取模块、比较处理模块、缓存数据处理模块;其中,所述获取模块通过所述比较处理模块与所述缓存数据处理模块相连;
所述获取模块,用于获取数据块特征值并将所述数据块特征值发送至所述比较处理模块;
所述比较处理模块,用于将数据块特征值与预设阈值进行比较并根据比较结果,对数据块进行处理并将处理结果发送至所述缓存数据处理模块;
所述缓存数据处理模块,用于根据获取的访问缓存数据次数、第一生存时间阈值、第二生存时间阈值,确定对应的缓存数据处理策略。
通过以下方案:获取数据块特征值并与预设阈值进行比较并根据比较结果,对数据块进行处理;根据获取的访问缓存数据次数、第一生存时间阈值、第二生存时间阈值,确定对应的缓存数据处理策略;实现了在缓存数据运行时,由访问频率自行决定生存时间,使得缓存数据的生存时间更加合理,不经常访问的数据调出缓存,节省空间;经常访问的数据常驻缓存,提高命中率,从而加快访问速度,提高访问效率。
通过以下方案:若在第一生存时间阈值内,所述第一缓存数据被访问,则将所述第一缓存数据的生存时间重新置为第一生存时间阈值;若第一生存时间阈值到达时,所述第一缓存数据未被访问,则将所述第一缓存数据删除;采用上述方案使得对于访问比较频繁的第一缓存数据,由于访问频率高,在第一生存时间阈值到达前被访问,而不至于被清除;对于访问频率低的第一缓存数据,则会因为第一生存时间阈值到达时尚未被访问而被自动清除;采用上述方案使得对于突发性访问频率增加的数据更加有效,提高了访问效率,大大提高了用户体验。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1所示为本发明实施例1的缓存数据处理方法流程图;
图2所示为本发明实施例2的缓存数据处理装置结构图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
图1所示为本发明实施例1的缓存数据处理方法流程图,包括以下步骤:
步骤101:获取数据块特征值并与预设阈值进行比较并根据比较结果,对数据块进行处理;
其中,预设阈值根据实际情况可以灵活设定,例如:512B,在此不用于限定本实施例保护范围;数据块特征值是指数据块大小值。
进一步地,获取数据块特征值并与预设阈值进行比较并根据比较结果,对数据块进行处理的过程为:
若数据块大小值小于预设阈值,则将数据块存至预设内存数据库,形成第一缓存数据,并设定所述第一缓存数据的第一生存时间阈值。
进一步地,若数据块大小值小于预设阈值,则将数据块存至预设内存数据库,形成第一缓存数据,并设定所述第一缓存数据的第一生存时间阈值的过程为:
若数据块大小值小于预设阈值,则将数据块存至预设内存数据库,形成第一缓存数据,采用设置时间命令,对所述第一缓存数据进行第一生存时间阈值设定。
其中,根据自身程序的本身环境(因为环境不同,不能统一而定,比如:有的网站平均访问率高,平均1秒就有一人访问,有的网站可能10秒才有人访问一次),自身程序历史访问记录的平均间隔,设定第一生存时间阈值(T1)。
进一步地,获取数据块特征值并与预设阈值进行比较并根据比较结果,对数据块进行处理的过程为:
若数据块大小值大于或等于预设阈值,则对数据块增加1字节空间用于对数据访问次数进行记录,并将增加字节后的数据块存入预设内存库,形成第二缓存数据并对所述第二缓存数据设定第二生存时间阈值。
其中,所述预设内存数据库是指Redis内存数据库。
其中,对于数据块大小值大于或等于预设阈值,对数据块增加1字节空间用于记录数据访问次数,并将初始访问次数,置为0。
其中,第二生存时间阈值为第一生存时间阈值的整数倍,例如:2倍第一生存时间阈值(2T)、3倍第一生存时间阈值(3T)、4倍第一生存时间阈值(4T)、5倍第一生存时间阈值(5T)、6倍第一生存时间阈值(6T)、7倍第一生存时间阈值(7T)、8倍第一生存时间阈值(8T)。
步骤102:根据获取的访问缓存数据次数、第一生存时间阈值、第二生存时间阈值,确定对应的缓存数据处理策略。
进一步地,根据获取的访问缓存数据次数、第一生存时间阈值、第二生存时间阈值,确定对应的缓存数据处理策略的过程为:
若在第一生存时间阈值内,所述第一缓存数据被访问,则将所述第一缓存数据的生存时间重新置为第一生存时间阈值;若第一生存时间阈值到达时,所述第一缓存数据未被访问,则将所述第一缓存数据删除。
采用上述方案使得对于访问比较频繁的第一缓存数据,由于访问频率高,在第一生存时间阈值到达前被访问,而不至于被清除;对于访问频率低的第一缓存数据,则会因为第一生存时间阈值到达时尚未被访问而被自动清除。
采用上述方案使得对于突发性访问频率增加的数据更加有效,比如:可能数据访问突发性比较高,在访问高峰期数据会一直不断缓存在Redis内存数据库,而访问低谷期则会被清除,并不会长期存储,节省了Redis内存数据库空间。
进一步地,根据获取的访问缓存数据次数、第一生存时间阈值、第二生存时间阈值,确定对应的缓存数据处理策略的过程为:
每访问第二缓存数据1次,则访问次数加1,若在第二生存时间阈值内,访问次数大于或等于预设最大次数,则将所述第二缓存数据的生存时间重新置为第二生存时间阈值且将访问次数重新置为0。
进一步地,根据获取的访问缓存数据次数、第一生存时间阈值、第二生存时间阈值,确定对应的缓存数据处理策略的过程为:
每访问第二缓存数据1次,则访问次数加1,若在第二生存时间阈值内访问次数小于预设最大次数,则将所述第二缓存数据删除。
对于大于或等于预设阈值的数据块附加1个字节空间进行数据访问次数统计的思路,具有以下特点:
1、由于数据块本身比较大,增加1个字节空间不会造成太大空间浪费。
2、这一字节却在防止大块数据频繁调入调出Redis内存数据库有着重要作用,对于大于或等于预设阈值的数据设置第二生存时间阈值,若在第二生存时间阈值内,访问次数大于或等于预设最大次数,则将所述第二缓存数据的生存时间重新置为第二生存时间阈值且将访问次数重新置为0,看起来和小于预设阈值的数据每次访问后更改一次时间类似,但却大不一样。比如:有的网站有时会发生数据访问频率并不规律,有时可能在某一时刻集中访问频率很高,但到下一时刻几乎不会访问,可能之后就又会频繁访问。如果使用每次访问调整一次时间的方式,可能就会在这暂时不访问数据的这段时间由于时间到期而被清除,如果数据块比较小,重新存入一次可能耗费较小资源,但对于较大数据块就会不一样,而采用后者会有效防止这种情况发生,如下示意图:
A B C D
其中,A、B、C、D分别代表不同的时间段,分别有100S时间。假设A段中平均访问一次数据需要1S,B段中平均访问一次数据需要5S,C段中平均访问一次数据需要1S。
这样如果设定的时间阈值是4S时,在B中的缓存数据就会因长时间不访问而被调出Redis内存数据库;如果给数据设定的时间阈值为2^8*4S,虽然在B段未能频繁访问,但在A段设定的缓存周期超过了B段时间,等到C段时间时数据高速频繁访问,这样会在缓存生命周期到期之前达到访问次数最高值,重新设定缓存周期,而不至于在B段由于访问频率较低而被调出内存,减少了大块缓存数据调入调出内存的资源消耗。
图2所示为本发明实施例2的缓存数据处理装置结构图,包括获取模块201、比较处理模块202、缓存数据处理模块203;其中,所述获取模块201通过所述比较处理模块202与所述缓存数据处理模块203相连;
所述获取模块201,用于获取数据块特征值并将所述数据块特征值发送至所述比较处理模块202;
所述比较处理模块202,用于将数据块特征值与预设阈值进行比较并根据比较结果,对数据块进行处理并将处理结果发送至所述缓存数据处理模块203;
所述缓存数据处理模块203,用于根据获取的访问缓存数据次数、第一生存时间阈值、第二生存时间阈值,确定对应的缓存数据处理策略。
通过以下方案:获取数据块特征值并与预设阈值进行比较并根据比较结果,对数据块进行处理;根据获取的访问缓存数据次数、第一生存时间阈值、第二生存时间阈值,确定对应的缓存数据处理策略;实现了在缓存数据运行时,由访问频率自行决定生存时间,使得缓存数据的生存时间更加合理,不经常访问的数据调出缓存,节省空间;经常访问的数据常驻缓存,提高命中率,从而加快访问速度,提高访问效率。
通过以下方案:若在第一生存时间阈值内,所述第一缓存数据被访问,则将所述第一缓存数据的生存时间重新置为第一生存时间阈值;若第一生存时间阈值到达时,所述第一缓存数据未被访问,则将所述第一缓存数据删除;采用上述方案使得对于访问比较频繁的第一缓存数据,由于访问频率高,在第一生存时间阈值到达前被访问,而不至于被清除;对于访问频率低的第一缓存数据,则会因为第一生存时间阈值到达时尚未被访问而被自动清除;采用上述方案使得对于突发性访问频率增加的数据更加有效,提高了访问效率,大大提高了用户体验。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (7)

1.一种缓存数据处理方法,其特征在于,包括以下步骤:
获取数据块特征值并与预设阈值进行比较,所述数据块特征值是指数据块大小值;
若数据块大小值小于预设阈值,则将数据块存至预设内存数据库,形成第一缓存数据,并设定所述第一缓存数据的第一生存时间阈值;
若数据块大小值大于或等于预设阈值,则对数据块增加1字节空间用于对数据访问次数进行记录,并将增加字节后的数据块存入预设内存库,形成第二缓存数据并对所述第二缓存数据设定第二生存时间阈值;
其中,所述第一生存时间阈值根据历史数据访问记录的平均间隔而定;所述第二生存时间阈值是所述第一生存时间阈值的大于等于2的整数倍;
根据获取的访问缓存数据次数、第一生存时间阈值、第二生存时间阈值,确定对应的缓存数据处理策略。
2.根据权利要求1所述的方法,其特征在于,若数据块大小值小于预设阈值,则将数据块存至预设内存数据库,形成第一缓存数据,并设定所述第一缓存数据的第一生存时间阈值的过程为:
若数据块大小值小于预设阈值,则将数据块存至预设内存数据库,形成第一缓存数据,采用设置时间命令,对所述第一缓存数据进行第一生存时间阈值设定。
3.根据权利要求1所述的方法,其特征在于,对于数据块大小值大于或等于预设阈值,对数据块增加1字节空间用于记录数据访问次数,并将初始访问次数,置为0。
4.根据权利要求2或3所述的方法,其特征在于,根据获取的访问缓存数据次数、第一生存时间阈值、第二生存时间阈值,确定对应的缓存数据处理策略的过程为:
若在第一生存时间阈值内,所述第一缓存数据被访问,则将所述第一缓存数据的生存时间重新置为第一生存时间阈值;若第一生存时间阈值到达时,所述第一缓存数据未被访问,则将所述第一缓存数据删除;
每访问第二缓存数据1次,则访问次数加1,若在第二生存时间阈值内,访问次数大于或等于预设最大次数,则将所述第二缓存数据的生存时间重新置为第二生存时间阈值且将访问次数重新置为0。
5.根据权利要求4所述的方法,其特征在于,每访问第二缓存数据1次,则访问次数加1,若在第二生存时间阈值内访问次数小于预设最大次数,则将所述第二缓存数据删除。
6.根据权利要求1或2所述的方法,其特征在于,所述预设内存数据库是指Redis内存数据库。
7.一种缓存数据处理装置,其特征在于,包括获取模块、比较处理模块、缓存数据处理模块;其中,所述获取模块通过所述比较处理模块与所述缓存数据处理模块相连;
所述获取模块,用于获取数据块特征值并将所述数据块特征值发送至所述比较处理模块,所述数据块特征值是指数据块大小值;
所述比较处理模块,用于将数据块特征值与预设阈值进行比较;若数据块大小值小于预设阈值,则将数据块存至预设内存数据库,形成第一缓存数据,并设定所述第一缓存数据的第一生存时间阈值;若数据块大小值大于或等于预设阈值,则对数据块增加1字节空间用于对数据访问次数进行记录,并将增加字节后的数据块存入预设内存库,形成第二缓存数据并对所述第二缓存数据设定第二生存时间阈值;
其中,所述第一生存时间阈值根据历史数据访问记录的平均间隔而定;所述第二生存时间阈值是所述第一生存时间阈值的大于等于2的整数倍;所述缓存数据处理模块,用于根据获取的访问缓存数据次数、第一生存时间阈值、第二生存时间阈值,确定对应的缓存数据处理策略。
CN201510654678.6A 2015-10-10 2015-10-10 一种缓存数据处理方法及装置 Active CN105335102B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510654678.6A CN105335102B (zh) 2015-10-10 2015-10-10 一种缓存数据处理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510654678.6A CN105335102B (zh) 2015-10-10 2015-10-10 一种缓存数据处理方法及装置

Publications (2)

Publication Number Publication Date
CN105335102A CN105335102A (zh) 2016-02-17
CN105335102B true CN105335102B (zh) 2018-05-01

Family

ID=55285683

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510654678.6A Active CN105335102B (zh) 2015-10-10 2015-10-10 一种缓存数据处理方法及装置

Country Status (1)

Country Link
CN (1) CN105335102B (zh)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107145495B (zh) * 2016-03-01 2020-12-29 创新先进技术有限公司 动态调整参数规则的方法及装置
CN105824902A (zh) * 2016-03-14 2016-08-03 乐视网信息技术(北京)股份有限公司 一种数据缓存方法及装置
CN106021129B (zh) * 2016-04-29 2018-11-16 努比亚技术有限公司 一种终端及终端清理缓存的方法
CN106227679B (zh) * 2016-07-25 2018-12-28 北京邮电大学 一种数据缓存替换方法及装置
CN107870729B (zh) * 2016-09-23 2020-11-20 伊姆西Ip控股有限责任公司 一种用于缓存数据的方法、设备和系统
CN106951550B (zh) * 2017-03-27 2020-06-05 Oppo广东移动通信有限公司 数据处理方法、装置及移动终端
CN107168648B (zh) * 2017-05-04 2021-03-02 Oppo广东移动通信有限公司 文件存储方法、装置及终端
CN107273243A (zh) * 2017-05-27 2017-10-20 杭州清本科技有限公司 分布式数据库的数据备份装置
CN107291831A (zh) * 2017-05-27 2017-10-24 杭州清本科技有限公司 分布式数据库的数据管理方法及计算机可读介质
CN107273446A (zh) * 2017-05-27 2017-10-20 杭州清本科技有限公司 分布式数据库的数据管理装置
CN107133369A (zh) * 2017-06-16 2017-09-05 郑州云海信息技术有限公司 一种基于redis过期键的分布式读共享缓存老化方法
CN108287878A (zh) * 2018-01-02 2018-07-17 沈阳东软医疗系统有限公司 一种动态缓存数据失效调度方法、装置和缓存系统
CN108363796A (zh) * 2018-02-23 2018-08-03 北京网信云服信息科技有限公司 一种数据的迁移方法及装置
CN109379395B (zh) * 2018-08-22 2022-11-11 中国平安人寿保险股份有限公司 一种接口数据缓存设置方法及终端设备
CN111597213B (zh) * 2019-02-21 2023-05-30 北京京东尚科信息技术有限公司 一种缓存方法、软件服务器及存储介质
CN109918382B (zh) * 2019-03-18 2021-06-01 Oppo广东移动通信有限公司 数据处理方法、装置、终端及存储介质
CN111522506B (zh) * 2020-04-03 2022-08-02 杭州迪普信息技术有限公司 一种数据读取的方法及装置
CN115390752B (zh) * 2022-08-10 2023-04-18 中科豪联(杭州)技术有限公司 一种多磁盘的缓存文件管理方法
CN116301655B (zh) * 2023-04-12 2023-11-07 深圳市英唐数码科技有限公司 一种历史笔记图片加载方法、系统和可读存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103366016A (zh) * 2013-08-01 2013-10-23 南京大学 基于hdfs的电子文件集中存储及优化方法
CN103559307A (zh) * 2013-11-18 2014-02-05 中国农业银行股份有限公司 一种查询的缓存方法及装置
CN104133880A (zh) * 2014-07-25 2014-11-05 广东睿江科技有限公司 一种设置文件缓存时间的方法与装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10114878B2 (en) * 2013-12-16 2018-10-30 International Business Machines Corporation Index utilization in ETL tools

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103366016A (zh) * 2013-08-01 2013-10-23 南京大学 基于hdfs的电子文件集中存储及优化方法
CN103559307A (zh) * 2013-11-18 2014-02-05 中国农业银行股份有限公司 一种查询的缓存方法及装置
CN104133880A (zh) * 2014-07-25 2014-11-05 广东睿江科技有限公司 一种设置文件缓存时间的方法与装置

Also Published As

Publication number Publication date
CN105335102A (zh) 2016-02-17

Similar Documents

Publication Publication Date Title
CN105335102B (zh) 一种缓存数据处理方法及装置
US9361232B2 (en) Selectively reading data from cache and primary storage
CN103412916B (zh) 一种监控系统的多维度数据存储、检索方法及装置
US8713275B2 (en) Memory access monitoring method and device
EP3367251A1 (en) Storage system and solid state hard disk
WO2017117734A1 (zh) 一种缓存管理方法、缓存控制器以及计算机系统
CN110119487B (zh) 一种适用于发散数据的缓存更新方法
CN101547113B (zh) 告警信息过滤系统、装置及方法
CN106844740B (zh) 基于内存对象缓存系统的数据预读方法
US20140258375A1 (en) System and method for large object cache management in a network
CN106897141A (zh) 信息的处理方法及装置
CN105472056A (zh) Dns递归服务器分层缓存方法和系统
WO2017036428A2 (zh) 容量变更建议方法及装置
CN103108047A (zh) 一种对象存储系统元数据缓存的优化方法
CN107133369A (zh) 一种基于redis过期键的分布式读共享缓存老化方法
CN106155913B (zh) 缓存命中率分析的方法及设备
CN108093024B (zh) 一种基于数据频度的分类路由方法及装置
CN106874465A (zh) 一种基于数据版本的高效管理缓存的方法
CN111858481A (zh) 一种分布式文件系统热度统计方法、装置
CN113094392A (zh) 数据缓存的方法和装置
Miao et al. Multi-level plru cache algorithm for content delivery networks
US20050086436A1 (en) Method and system of adaptive replacement cache with temporal filtering
CN110008190B (zh) 一种周期性的小文件缓存置换方法
CN107577618B (zh) 一种三路均衡缓存淘汰方法及装置
CN107545053A (zh) 一种集群系统缓存查询方法及设备

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant