CN103246612A - 一种数据缓存的方法及装置 - Google Patents
一种数据缓存的方法及装置 Download PDFInfo
- Publication number
- CN103246612A CN103246612A CN2012100317489A CN201210031748A CN103246612A CN 103246612 A CN103246612 A CN 103246612A CN 2012100317489 A CN2012100317489 A CN 2012100317489A CN 201210031748 A CN201210031748 A CN 201210031748A CN 103246612 A CN103246612 A CN 103246612A
- Authority
- CN
- China
- Prior art keywords
- cache pool
- importance degree
- degree information
- pool
- accessed
- 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.)
- Granted
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本申请公开了一种数据缓存的方法及装置,包括:根据缓存池中每次新加入元素的情况和缓存池中已加入元素被访问的命中次数,为缓存池中的每个元素分别维护重要度信息;在每次需要对缓存池中的元素进行清理时,参照缓存池中各个元素的排序结果,对所述缓存池中存储的元素进行清理,其中,所述排序结果为根据分别为缓存池中的每个元素分别维护的重要度信息,按照预设的规则对缓存池中的各个元素进行排序得到的。采用本申请提出的技术方案,能够较好地提高基于WEB系统的客户端在进行数据缓存时的灵活性,以及在占用系统资源低的情况下实现数据被访问时的高命中率,从而改善系统的性能。
Description
技术领域
本申请涉及数据存储技术领域,尤其涉及一种数据缓存的方法及装置。
背景技术
随着数据库技术的不断成熟,数据库的存储量日趋增大,从而可以为用户提供更加丰富的数据资源,用户可以从数据库中获取所需要的数据。在实际应用中,对于用户需求量大的系统,例如一个日访问量达到百万级的网站,由于每个用户的爱好、需求不尽相同,在单位时间内,需要处理大量的数据分析和访问工作,对系统性能和用户浏览速度也会造成影响,给用户的数据浏览速度提升造成瓶颈。
为了解决上述问题,一般采用将用户需要浏览的数据初始化到内存中缓存起来,用户访问网站时可以从内存中获取数据。数据缓存一般有两种方式,一种是服务端缓存,另一种是客户端缓存。现假设用于存储数据的内存为一个缓存池,其中存储的数据称之为元素,来详细阐述现有技术中,基于万维网(WEB)的系统是如何实现在客户端动态缓存数据的。现有技术中,为了实现在客户端动态缓存数据,一般采用下述三种方式:
第一种方式:根据超文本传输(http)协议中规定的相应属性(如cache_control,etag等),由服务端在http响应头中设置数据缓存时间等属性值来实现客户端动态缓存数据。例如,由服务端在http响应头中设置对应http请求所获取的数据的存储时间为两个小时,客户端不能缩短或延长时间。则在两个小时之后,无论该数据是否还需要被用户访问,都需要将该数据进行清理。
第二种方式:应用html5标准中的本地存储来实现客户端动态缓存数据。
第三种方式:在客户端采用缓存算法实现数据缓存管理,例如,采用先进先出的队列管理算法来管理缓存池中的各个元素。即先进入缓存池的元素,在缓存池容量达到预设的阈值时,即使该元素是被频繁访问的,该元素也会被清理。
上述三种方式,分别存在下述缺陷:
对于第一种方式:需要依赖服务端进行属性值设置,属性值在设置完成以后,客户端不能够对其进行控制,例如客户端不能够更改或者延长数据存储时间,所以这种方式灵活性较差。
对于第二种方式:兼容性较差,并非所有浏览器都支持html5标准,特别是旧版浏览器,例如ie9以下版本都不支持html5。
对于第三种方式:由于受制于WEB系统的客户端平台、语言和资源等各方面的限制,客户端能够采用的算法一般比较简单,使得用户在访问缓存池中的元素时,该元素可能已经被清理,所以命中率较低,从而影响了整个系统的性能。
综上所述,现有技术中,基于WEB系统的客户端在进行数据缓存时,灵活性较差、在占用系统资源低的情况下实现数据被访问时命中率较低,使得系统的性能也较差。
发明内容
本申请实施例提供一种数据缓存的方法及装置,能够较好地提高基于WEB系统的客户端在进行数据缓存时的灵活性以及数据被访问时的命中率,并改善系统的性能。
本申请实施例提出的技术方案如下:
一种数据缓存的方法,包括:根据缓存池中每次新加入元素的情况和缓存池中已加入元素被访问的命中次数,为缓存池中的每个元素分别维护重要度信息;在每次需要对缓存池中的元素进行清理时,参照缓存池中各个元素的排序结果,对所述缓存池中存储的元素进行清理,其中所述排序结果为根据分别为缓存池中的每个元素分别维护的重要度信息,按照预设的规则对缓存池中的各个元素进行排序得到的。
一种数据缓存的装置,包括:重要度信息维护单元,用于根据缓存池中每次新加入元素的情况和缓存池中已加入元素被访问的命中次数,为缓存池中的每个元素分别维护重要度信息;排序单元,用于在每次需要对缓存池中的元素进行清理时,根据重要度信息维护单元分别为缓存池中的每个元素分别维护的重要度信息,按照预设的规则对缓存池中的各个元素进行排序。缓存池清理单元,用于在每次需要对缓存池中的元素进行清理时,参照排序单元为缓存池中各个元素的排序结果,对所述缓存池中存储的元素进行清理。
采用上述技术方案,根据缓存池中每次新加入元素的情况和缓存池中已经存储的元素被访问的次数,为缓存池中的每个元素分别维护重要度信息,在每次需要对缓存池中的元素进行清理时,参照缓存池中各个元素的排序结果,对所述缓存池中存储的元素进行清理,从而能够较好地提高缓存池在进行缓存时的灵活性以及在占用系统资源低的情况下,实现数据被访问时的高命中率,并改善系统的性能。
附图说明
图1为本申请实施例一中,提出的数据缓存的方法流程图;
图2为本申请实施例一中,提出的缓存池组成示意图;
图3为本申请实施例一中,提出的对缓存池中的元素进行排序得到的排序结果示意图;
图4为本申请实施例二中,提出的数据缓存的装置结构图;
图5为本申请实施例三中,提出的数据缓存的方法流程图。
具体实施方式
针对现有技术中存在的基于WEB系统的客户端在进行数据缓存时的灵活性较差,以及数据被访问时的命中率较低的问题,本申请这里提出的数据缓存的方法,根据缓存池中每次新加入元素的情况和缓存池中已经存储的元素被访问的次数,为缓存池中的每个元素分别维护重要度信息,在每次需要对缓存池中的元素进行清理时,参照缓存池中各个元素的排序结果,对缓存池中存储的元素进行清理,从而能够较好地提高缓存池在进行缓存时的灵活性以及缓存池中的元素被访问时的命中率,并改善系统的性能。
下面将结合各个附图对本申请实施例提出的技术方案的主要实现原理、具体实施方式及其对应能够达到的有益效果进行详细地阐述。
需要说明的是,本申请各实施例中提到的缓存池,可以是存储在内存中的一个数据块,也可以是存储在内存中的多个数据块,每一个数据块对应一个缓存池。其中,各数据块的存储空间可以相同,也可以不同。
实施例一
本申请实施例一这里提出数据缓存的方法,如图1所示,其具体处理过程如下:
步骤101,记录缓存池中已经存储的元素被访问的命中次数,以及记录缓存池中每次新加入元素的情况。
其中,缓存池中存储的每个元素,都采用唯一的标识与其对应。命中次数是指用户终端对缓存池中存储的元素的访问次数,在缓存池中存储的元素,每被访问一次,则记录对应该被访问的元素的命中次数就增加1。由于缓存池中存储的元素是不断的动态更新的,所以对新加入元素的判断可以根据该元素加入缓冲池的时间来判断,更新时间最新的元素就可以确定为新加入缓存池的元素。例如,当用户终端需要访问一个元素时,但是由于缓存池中并没有存储该元素,所以此时客户端需要向服务端发起访问该元素的请求,然后将服务端发来的与该元素信息存储到缓存池中,后续用户终端如果需要再次访问该元素时,就可以在缓存池中直接访问该元素了,即由服务端发来的最新存储到缓存池中的元素就是新加入到缓存池中的元素。每产生一个新加入到缓存池中的元素,则记录缓存池中新加入元素的数量就增加1。
具体地,可以但不限于采用计数器累加的方式来记录缓存池中已经存储的元素被访问的命中次数和缓存池中每次新加入元素的数量,或者采用计数器触发的方式来记录缓存池中已经存储的元素被访问的命中次数和缓存池中每次新加入元素的数量。
步骤102,根据记录的缓存池中每次新加入元素的情况和缓存池中已加入元素被访问的命中次数,为缓存池中的每个元素分别维护重要度信息。
其中,缓存池中的每个元素,都对应维护着一个重要度信息,重要度信息是由每次新加入元素的情况和缓存池中已加入元素的被访问的命中次数决定的。
具体地,当有新元素加入到缓存池中时,设置一个默认值作为该新加入元素的重要度信息,并将为缓存池中除该新加入的元素之外的每个元素分别维护的重要度信息,更新为原重要度信息减去一个第一预设值。当缓存池中的一个元素被访问命中时,将为该被访问命中的元素维护的重要度信息,更新为原重要度信息加上一个第二预设值。具体地,第一预设值的取值可以小于第二预设值。
较佳地,本申请实施例一这里提出的技术方案,将第一预设值设置为数值“1”,将第二预设值设置为缓存池中当前已经存储的元素的总数量,这样,第二预设值可以根据缓存池中存储的元素的数量动态变化。例如当前缓存池中已经存储的元素的总数量n,则此时第二预设值为n。当有新元素加入到缓存池中时,设置数值“0”作为该新加入元素的重要度信息,然后将缓存池中除该新加入的元素之外的每个元素的重要度信息减去第一预设值“1”,得到的结果作为为该元素维护的重要度信息。并且,当缓存池中存储的一个元素被用户终端访问命中时(包含新加入缓存池的元素被用户终端访问命中时),将为该被访问命中的元素维护的重要度信息,加上第二预设值n(n为缓存池中的当前元素总数),得到的结果作为为该被访问命中的元素维护的重要度信息。
例如,如图2所示,缓存池A中存储着5个元素,5个元素的标识信息分别为K1,K2......K5,新加入的元素的标识信息为K6,对应这6个元素分别维护的重要度信息为W1,W2......W6,则按照本步骤中的实施原理,在元素K6加入时,设置K6的重要度信息为W6=0,同时将分别为K1,K2......K5维护的重要度信息更新为:W1_1,W2_1......W5_1。接下来,如果缓存池中的元素K5被用户终端访问,则由于此时缓冲池中已经存储有6个元素,所以对应将为K5维护的重要度信息更新为W5_1+6。
步骤103,在每次需要对缓存池中的元素进行清理时,参照缓存池中各个元素的排序结果,对该缓存池中存储的元素进行清理,其中,所述排序结果为根据分别为缓存池中的每个元素分别维护的重要度信息,按照预设的规则对缓存池中的各个元素进行排序得到的。
由于缓存池的存储空间是有限的,缓存池中存储的元素被用户终端访问的频率也是有限的,所以为了避免因为缓存池中存储的元素因为长时间不被用户终端访问,而浪费缓存池的存储资源,并且新的元素又无法加入到缓存池中来的问题,所以需要对缓存池中存储的元素进行清理。其中,对缓存池中的元素进行清理,可以周期性执行(例如,可以预先设定一个定时器,周期性的触发清理机制),也可以根据缓存池的存储容量来确定是否要对该缓存池中的元素进行清理。
具体的,根据缓存池的存储容量来确定是否要对缓存池中的元素进行清理,可以但不限于采用下述方式:
第一种方式:在该缓存池中已被占用的存储容量大于预设的第一阈值时,确定需要对该缓存池中存储的元素进行清理。
其中,缓存池中已被占用的存储容量可以根据缓存池中存储的每个元素的容量大小来确定,例如,缓存池的总容量为400K,缓存池中的每个元素的容量大小不一样,有几百字节,也有几K的,此时可以将第一阈值预先设定为390K,如果缓存池中存储的元素的总容量大于预设的390K,则确定需要对缓存池中存储的元素进行清理。
较佳地,由于客户端缓存中存储的数据的容量一般都比较小,这样,缓存池中的存储容量也可以根据经验,确定该缓存池能够存储多少个元素。例如,根据经验,可以选择一个平均值,然后将缓存池的容量值与该平均值求商,得到的结果作为缓存池的存储容量值,即采用此技术方案,对应缓存池的容量为该缓存池中能够存储多少个元素。例如,缓存池的总容量为400K,根据经验,获得一个平均值2k,得到的结果为该缓存池的容量为200(即该缓存池一共能够存储200个元素)。
较佳地,还可以根据系统的处理性能,预设的第一阈值可以略大于缓存池的容量值。例如,缓存池中能够存储200个元素,相应地,可以将第一阈值设定为206。
第二种方式:在该缓存池中已经被占用的存储容量大于预设的第二阈值且有新元素加入该缓存池时,确定需要对所述缓存池中存储的元素进行清理。
需要说明的是,当缓存池中的容量达到预先设定的阈值时,但是在此时,并没有新元素要加入该缓存池,所以可以暂时不对缓存池中存储的元素进行清理。其中,预先设定的第二阈值可以与上述在第一种方式中预设的第一阈值相同,也可以不相同。
其中,按照预先设定的规则对缓存池中的各个元素进行排序,可以但不限于采用下述两种方法:
第一种方法:如图3所示,可以根据分别为缓存池中的每个元素分别维护的重要度信息从大到小的顺序,对缓存池中的元素进行排序。其中,K1......KN标识缓存池中的N个元素,对应的重要度信息分别为W1......WN,对应的每个元素被用户终端访问的命中次数分别为V1......VN。
其中,对于上述排序方法,如果缓存池中的有重要度信息相同的元素时,在排序时,可以再判断相同重要度信息分别对应的元素的被访问的命中次数,将访问命中次数比较多的元素排在前面。
第二种方法:根据分别为缓存池中的每个元素分别维护的重要度信息从小到大的顺序,对缓存池中的元素进行排序。
其中,对于上述排序方法,如果缓存池中的有重要度信息相同的元素时,在排序时,也可以再判断相同重要度信息分别对应的元素的被访问的命中次数,将访问命中次数比较多的元素的元素排在后面。
需要说明的是,本申请提出的排序方法,并非仅仅局限于上述两种排序原则,实际应用中可以根据需要对排序原则进行设置。并且,按照预先设定的规则,根据分别为缓存池中的每个元素分别维护的重要度信息,对缓存池中的各个元素进行排序的时机,可以选择在重要度信息有更新的时候就执行,也可以选择在需要对缓存池中存储的元素进行清理时,再执行对缓存池中的元素进行排序,而在需要对该缓存池中存储的元素进行清理时,可以根据最新的排序结果执行相应的操作即可。一种较佳地实现方式,本申请实施例一这里提出的技术方案中,当缓存池中的存储的元素对应的重要度信息发生变化时,即按照变化后的对应每个元素的重要度信息,对缓存池中的元素的排序进行调整,这样可以使得缓存池中的每个元素始终保持有序的状态,可以较好地节省系统的开销,从而提高系统的处理性能。
具体地,根据上述第一种方法得到的排序结果,对缓存池中存储的元素进行清理,丢弃排序结果中排序在从低至高位上的指定数量的元素。一种较佳的实现方式,可以根据上述第一种方法得到的排序结果,在经过排序后得到的队列中,从低位至高位依次丢弃指定数量的元素。即从队尾开始,依次丢弃指定数量的元素,这样可以较好地节省系统的处理资源,队列中剩余的各元素不需要进行移动。根据上述第二种方法得到的排序结果,对缓存池中的各个元素进行清理,丢弃排序结果中排序在从高至低位上的指定数量的元素。一种较佳的实现方式,可以根据上述第二种方法得到的排序结果,在经过排序后得到的队列中,从队头开始,依次丢弃指定数量的元素,然后将队列中剩余的元素依次向前移动。
需要指出的是,本申请上述提出的根据排序结果,按照指定的规则丢应缓存池中相应数量的元素,实际应用中可以根据需要进行设置,只要保证丢弃的元素对应的重要度信息较低即可。
实施例二
相应地,为了实现上述实施例一中阐述的数据缓存的方法,本申请实施例二这里提出一种数据缓存的装置,如图4所示,包括:
重要度信息维护单元401,用于根据缓存池中每次新加入元素的情况和缓存池中已加入元素被访问的命中次数,为缓存池中的每个元素分别维护重要度信息。
具体地,上述重要度信息维护单元401,具体用于当有新元素加入到所述缓存池中时,设置一个默认值作为该新加入元素的重要度信息,并将为缓存池中除该新加入的元素之外的每个元素分别维护的重要度信息,更新为原重要度信息减去一个第一预设值;以及当所述缓存池中的一个元素被访问命中时,将为该被访问命中的元素维护的重要度信息,更新为原重要度信息加上一个第二预设值。
排序单元402,用于根据重要度信息维护单元401分别为缓存池中的每个元素分别维护的重要度信息,按照预设的规则对缓存池中的各个元素进行排序。
缓存池清理单元403,用于在每次需要对缓存池中的元素进行清理时,参照排序单元402为缓存池中各个元素的排序结果,对所述缓存池中存储的元素进行清理。
具体地,上述缓存池清理单元403,具体用于在所述缓存池中已被占用的存储容量大于预设的第一阈值或者在所述缓存池中已被占用的存储容量大于预设的第二阈值且有新元素加入该缓存池时,确定需要对所述缓存池中存储的元素进行清理。
具体地,上述排序单元402,具体用于根据重要度信息维护单元401分别为缓存池中的每个元素分别维护的重要度信息从大到小的顺序,对缓存池中的元素进行排序;上述缓存池清理单元403,具体用于在排序单元得到的排序结果中,丢弃排序在从低至高位上的指定数量的元素。
具体地,上述排序单元402,具体用于根据重要度信息维护单元分别为缓存池中的每个元素分别维护的重要度信息从小到大的顺序,对缓存池中的元素进行排序;上述缓存池清理单元403,具体用于在排序单元得到的排序结果中,丢弃排序在从高至低位上的指定数量的元素。
应当理解,以上装置包括的单元仅为根据该装置实现的功能进行的逻辑划分,实际应用中,可以进行上述单元的叠加或拆分。并且本申请实施例二提供的装置所实现的功能与上述实施例一提供的数据缓存的方法流程一一对应,对于该装置所实现的更为详细的处理流程,在上述方法实施例中已做详细描述,此处不再详细描述。
实施例三
进一步地,本申请实施例三这里以用户终端访问网站的过程为例,来对本申请实施例中提出的数据缓存的方法进一步详细阐述。如图5所示,具体流程如下:
步骤501,记录缓存池中已经存储的元素被访问的命中次数,以及记录缓存池中每次新加入元素的情况,根据记录的缓存池中每次新加入元素的情况和缓存池中已加入元素被访问的命中次数,为缓存池中的每个元素分别维护重要度信息。假设缓存池中现共存储有5个元素K1......K5,对应5个元素的重要度信息分别为W1......W5。
步骤502,接收用户终端发来的访问请求,在访问请求中包括用户终端需要访问的数据信息。
步骤503,查找缓存池中是否存储有与该用户终端所需访问的数据对应的元素,如果存在,执行步骤504,如果不存在,则执行步骤505。
步骤504,将缓存池中存储的用户终端需要访问的元素提供给用户终端,并更新为该元素维护的重要度信息,即将与该元素对应的重要度信息加上一个预设值,较佳地,本申请实施例这里将该预设值设置为n(n为缓存池中当前元素总数)。例如,假设与该元素对应的原重要度信息为5,且当前缓存池中已经存储的元素的总数量为5,则由于该元素被用户终端访问命中,所以将该元素维护的重要度信息更新为5+5=10。
步骤505,缓存池中没有存储与该用户终端需要访问的数据对应的元素,则从数据库中获得该用户终端所需的数据。
步骤506,更新缓存池中已经存储的各元素对应的重要度信息,然后将步骤505中获得的数据加载到缓存池中,并为该元素维护一个重要度信息。
本申请实施例三这里将新加入缓存池的元素的重要度信息设置为0,假设该缓存池中存储有5个元素,分别是K1......K5,对应的重要度信息分别为W1......W5,新加入的元素为K6,则设置与K6对应的重要度信息为W6=0,并将元素K1......K5的重要度信息更新为W1_1,W2_1......W5_1。
由于缓存池的存储空间是有限的,一种较佳地实施方式,将缓存池中存储的各元素,按照为各元素维护的重要度信息从大到小的顺序进行排列,这样,在缓存储池的存储空间达到预先设定的阈值时,可以删除排序在后的、重要度信息较小的元素,排序在前的(重要度信息较大的)元素不需要再重新进行移动,能够较好地节省系统的处理资源。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD_ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (10)
1.一种数据缓存的方法,其特征在于,包括:
根据缓存池中每次新加入元素的情况和缓存池中已加入元素被访问的命中次数,为缓存池中的每个元素分别维护重要度信息;
在每次需要对缓存池中的元素进行清理时,参照缓存池中各个元素的排序结果,对所述缓存池中存储的元素进行清理,其中,所述排序结果为根据分别为缓存池中的每个元素分别维护的重要度信息,按照预设的规则对缓存池中的各个元素进行排序得到的。
2.如权利要求1所述的方法,其特征在于,在所述缓存池中已被占用的存储容量大于预设的第一阈值或者在所述缓存池中已被占用的存储容量大于预设的第二阈值且有新元素加入该缓存池时,确定需要对所述缓存池中存储的元素进行清理。
3.如权利要求1所述的方法,其特征在于,根据缓存池中每次新加入元素的情况和缓存池中已加入元素被访问的命中次数,为缓存池中的每个元素分别维护重要度信息,包括:
当有新元素加入到所述缓存池中时,设置一个默认值作为该新加入元素的重要度信息,并将为缓存池中除该新加入的元素之外的每个元素分别维护的重要度信息,更新为原重要度信息减去一个第一预设值;
当所述缓存池中的一个元素被访问命中时,将为该被访问命中的元素维护的重要度信息,更新为原重要度信息加上一个第二预设值。
4.如权利要求3所述的方法,其特征在于,所述第一预设值小于第二预设值。
5.如权利要求1所述的方法,其特征在于,按照预设的规则对缓存池中的各个元素进行排序,包括:
根据分别为缓存池中的每个元素分别维护的重要度信息从大到小的顺序,对缓存池中的元素进行排序;
对所述缓存池中存储的元素进行清理,具体包括:
丢弃排序结果中排序在从低至高位上的指定数量的元素;
或者;
按照预设的规则对缓存池中的各个元素进行排序,包括:
根据分别为缓存池中的每个元素分别维护的重要度信息从小到大的顺序,对缓存池中的元素进行排序;
对所述缓存池中存储的元素进行清理,具体包括:
丢弃排序结果中排序在从高至低位上的指定数量的元素。
6.一种数据缓存的装置,其特征在于,包括:
重要度信息维护单元,用于根据缓存池中每次新加入元素的情况和缓存池中已加入元素被访问的命中次数,为缓存池中的每个元素分别维护重要度信息;
排序单元,用于在每次需要对缓存池中的元素进行清理时,根据重要度信息维护单元分别为缓存池中的每个元素分别维护的重要度信息,按照预设的规则对缓存池中的各个元素进行排序;
缓存池清理单元,用于在每次需要对缓存池中的元素进行清理时,参照排序单元为缓存池中各个元素的排序结果,对所述缓存池中存储的元素进行清理。
7.如权利要求6所述的装置,其特征在于,所述缓存池清理单元,具体用于在所述缓存池中已被占用的存储容量大于预设的第一阈值或者在所述缓存池中已被占用的存储容量大于预设的第二阈值且有新元素加入该缓存池时,确定需要对所述缓存池中存储的元素进行清理。
8.如权利要求6所述的装置,其特征在于,所述重要度信息维护单元,具体用于当有新元素加入到所述缓存池中时,设置一个默认值作为该新加入元素的重要度信息,并将为缓存池中除该新加入的元素之外的每个元素分别维护的重要度信息,更新为原重要度信息减去一个第一预设值;以及当所述缓存池中的一个元素被访问命中时,将为该被访问命中的元素维护的重要度信息,更新为原重要度信息加上一个第二预设值。
9.如权利要求6所述的装置,其特征在于,所述排序单元,具体用于根据重要度信息维护单元分别为缓存池中的每个元素分别维护的重要度信息从大到小的顺序,对缓存池中的元素进行排序;
所述缓存池清理单元,具体用于在排序单元得到的排序结果中,丢弃排序在从低至高位上的指定数量的元素。
10.如权利要求6所述的装置,其特征在于,所述排序单元,具体用于根据重要度信息维护单元分别为缓存池中的每个元素分别维护的重要度信息从小到大的顺序,对缓存池中的元素进行排序;
所述缓存池清理单元,具体用于在排序单元得到的排序结果中,丢弃排序在从高至低位上的指定数量的元素。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210031748.9A CN103246612B (zh) | 2012-02-13 | 2012-02-13 | 一种数据缓存的方法及装置 |
HK13111875.2A HK1184564A1 (zh) | 2012-02-13 | 2013-10-23 | 種數據緩存的方法及裝置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210031748.9A CN103246612B (zh) | 2012-02-13 | 2012-02-13 | 一种数据缓存的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103246612A true CN103246612A (zh) | 2013-08-14 |
CN103246612B CN103246612B (zh) | 2015-11-25 |
Family
ID=48926142
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210031748.9A Active CN103246612B (zh) | 2012-02-13 | 2012-02-13 | 一种数据缓存的方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN103246612B (zh) |
HK (1) | HK1184564A1 (zh) |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103631972A (zh) * | 2013-12-23 | 2014-03-12 | 济南大学 | 一种列访问感知的数据缓存方法及系统 |
CN104602104A (zh) * | 2015-01-15 | 2015-05-06 | 深圳市同洲电子股份有限公司 | 一种缓存文件处理方法及数字电视终端 |
CN105550245A (zh) * | 2015-12-08 | 2016-05-04 | 四川长虹电器股份有限公司 | 基于Android平台网络图片加载及缓存的优化系统及方法 |
CN107038127A (zh) * | 2017-02-08 | 2017-08-11 | 阿里巴巴集团控股有限公司 | 应用系统及其缓存控制方法和装置 |
CN107528866A (zh) * | 2016-06-21 | 2017-12-29 | 中兴通讯股份有限公司 | 缓存处理方法及装置 |
CN108681469A (zh) * | 2018-05-03 | 2018-10-19 | 武汉斗鱼网络科技有限公司 | 基于Android系统的页面缓存方法、装置、设备及存储介质 |
CN109857554A (zh) * | 2019-01-14 | 2019-06-07 | 珠海金山网络游戏科技有限公司 | 一种带下限的资源缓存方法及系统 |
CN109871336A (zh) * | 2019-01-14 | 2019-06-11 | 珠海金山网络游戏科技有限公司 | 一种动态缓存调整方法及系统 |
CN109876436A (zh) * | 2019-01-14 | 2019-06-14 | 珠海金山网络游戏科技有限公司 | 一种资源缓存设置方法及系统 |
CN110309079A (zh) * | 2018-03-27 | 2019-10-08 | 阿里巴巴集团控股有限公司 | 一种数据缓存的方法及装置 |
CN110874360A (zh) * | 2018-09-04 | 2020-03-10 | 北京奇虎科技有限公司 | 一种基于固定容量的有序队列缓存方法及装置 |
CN111159233A (zh) * | 2019-12-18 | 2020-05-15 | 金蝶软件(中国)有限公司 | 分布式缓存方法、系统、计算机设备以及存储介质 |
CN113360803A (zh) * | 2021-06-01 | 2021-09-07 | 平安银行股份有限公司 | 基于用户行为的数据缓存方法、装置、设备及存储介质 |
CN116824923A (zh) * | 2023-08-30 | 2023-09-29 | 四川九洲空管科技有限责任公司 | 一种动态优化ads-b航迹质量的方法 |
CN117573043A (zh) * | 2024-01-17 | 2024-02-20 | 济南浪潮数据技术有限公司 | 分布式存储数据的传输方法、装置、系统、设备和介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101493821A (zh) * | 2008-01-25 | 2009-07-29 | 中兴通讯股份有限公司 | 数据缓存方法和装置 |
-
2012
- 2012-02-13 CN CN201210031748.9A patent/CN103246612B/zh active Active
-
2013
- 2013-10-23 HK HK13111875.2A patent/HK1184564A1/zh unknown
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101493821A (zh) * | 2008-01-25 | 2009-07-29 | 中兴通讯股份有限公司 | 数据缓存方法和装置 |
Cited By (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103631972A (zh) * | 2013-12-23 | 2014-03-12 | 济南大学 | 一种列访问感知的数据缓存方法及系统 |
CN103631972B (zh) * | 2013-12-23 | 2016-09-21 | 济南大学 | 一种列访问感知的数据缓存方法及系统 |
CN104602104A (zh) * | 2015-01-15 | 2015-05-06 | 深圳市同洲电子股份有限公司 | 一种缓存文件处理方法及数字电视终端 |
CN105550245A (zh) * | 2015-12-08 | 2016-05-04 | 四川长虹电器股份有限公司 | 基于Android平台网络图片加载及缓存的优化系统及方法 |
CN107528866A (zh) * | 2016-06-21 | 2017-12-29 | 中兴通讯股份有限公司 | 缓存处理方法及装置 |
CN107038127A (zh) * | 2017-02-08 | 2017-08-11 | 阿里巴巴集团控股有限公司 | 应用系统及其缓存控制方法和装置 |
CN110309079A (zh) * | 2018-03-27 | 2019-10-08 | 阿里巴巴集团控股有限公司 | 一种数据缓存的方法及装置 |
CN110309079B (zh) * | 2018-03-27 | 2023-06-02 | 阿里巴巴集团控股有限公司 | 一种数据缓存的方法及装置 |
CN108681469B (zh) * | 2018-05-03 | 2021-07-30 | 武汉斗鱼网络科技有限公司 | 基于Android系统的页面缓存方法、装置、设备及存储介质 |
CN108681469A (zh) * | 2018-05-03 | 2018-10-19 | 武汉斗鱼网络科技有限公司 | 基于Android系统的页面缓存方法、装置、设备及存储介质 |
CN110874360A (zh) * | 2018-09-04 | 2020-03-10 | 北京奇虎科技有限公司 | 一种基于固定容量的有序队列缓存方法及装置 |
CN109871336B (zh) * | 2019-01-14 | 2021-02-02 | 珠海金山网络游戏科技有限公司 | 一种动态缓存调整方法及系统 |
CN109857554A (zh) * | 2019-01-14 | 2019-06-07 | 珠海金山网络游戏科技有限公司 | 一种带下限的资源缓存方法及系统 |
CN109857554B (zh) * | 2019-01-14 | 2021-06-08 | 珠海金山网络游戏科技有限公司 | 一种带下限的资源缓存方法及系统 |
CN109876436A (zh) * | 2019-01-14 | 2019-06-14 | 珠海金山网络游戏科技有限公司 | 一种资源缓存设置方法及系统 |
CN109876436B (zh) * | 2019-01-14 | 2022-09-20 | 珠海金山网络游戏科技有限公司 | 一种资源缓存设置方法及系统 |
CN109871336A (zh) * | 2019-01-14 | 2019-06-11 | 珠海金山网络游戏科技有限公司 | 一种动态缓存调整方法及系统 |
CN111159233A (zh) * | 2019-12-18 | 2020-05-15 | 金蝶软件(中国)有限公司 | 分布式缓存方法、系统、计算机设备以及存储介质 |
CN111159233B (zh) * | 2019-12-18 | 2024-03-08 | 金蝶软件(中国)有限公司 | 分布式缓存方法、系统、计算机设备以及存储介质 |
CN113360803A (zh) * | 2021-06-01 | 2021-09-07 | 平安银行股份有限公司 | 基于用户行为的数据缓存方法、装置、设备及存储介质 |
CN116824923A (zh) * | 2023-08-30 | 2023-09-29 | 四川九洲空管科技有限责任公司 | 一种动态优化ads-b航迹质量的方法 |
CN117573043A (zh) * | 2024-01-17 | 2024-02-20 | 济南浪潮数据技术有限公司 | 分布式存储数据的传输方法、装置、系统、设备和介质 |
Also Published As
Publication number | Publication date |
---|---|
CN103246612B (zh) | 2015-11-25 |
HK1184564A1 (zh) | 2014-01-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103246612A (zh) | 一种数据缓存的方法及装置 | |
Dong et al. | Optimizing Space Amplification in RocksDB. | |
CN104794177B (zh) | 一种数据存储方法及装置 | |
CN109783237B (zh) | 一种资源配置方法及装置 | |
Li et al. | Gd-wheel: a cost-aware replacement policy for key-value stores | |
EP2924594B1 (en) | Data encoding and corresponding data structure in a column-store database | |
Xu et al. | Characterizing facebook's memcached workload | |
CN109299113B (zh) | 具有存储感知的混合索引的范围查询方法 | |
CN102307234A (zh) | 基于移动终端的资源检索方法 | |
CN110058932A (zh) | 一种用于数据流驱动计算的存储方法和存储系统 | |
CN103853727A (zh) | 提高大数据量查询性能的方法及系统 | |
CN102193999A (zh) | 一种对搜索结果进行排序的方法及设备 | |
CN108984130A (zh) | 一种分布式存储的缓存读取方法及其装置 | |
CN103873587B (zh) | 一种基于云平台实现调度的方法及装置 | |
CN104850627A (zh) | 进行分页展示的方法及装置 | |
CN103198027A (zh) | 一种存储文件和提供文件的方法和装置 | |
CN106815260A (zh) | 一种索引建立方法及设备 | |
WO2020019313A1 (zh) | 一种图数据的更新方法、系统、计算机可读存储介质及设备 | |
CN101187884A (zh) | 资源管理方法和资源管理系统 | |
CN102207888A (zh) | 定时器管理方法和装置 | |
CN113392863A (zh) | 一种机器学习训练数据集的获取方法、获取装置及终端 | |
CN101236564A (zh) | 一种海量数据高性能读取显示方法 | |
CN104361009B (zh) | 一种基于倒排索引的实时索引方法 | |
Pan et al. | Penalty-and locality-aware memory allocation in redis using enhanced AET | |
CN105354317A (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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 1184564 Country of ref document: HK |
|
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: GR Ref document number: 1184564 Country of ref document: HK |