预览加载中,请您耐心等待几秒...
1/6
2/6
3/6
4/6
5/6
6/6

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

(19)中华人民共和国国家知识产权局(12)发明专利申请(10)申请公布号CN109783402A(43)申请公布日2019.05.21(21)申请号201811617920.2(22)申请日2018.12.28(71)申请人深圳竹云科技有限公司地址518000广东省深圳市南山区高新南一道009号中国科技开发院孵化大楼3楼东(72)发明人谢坚王泽峰(74)专利代理机构深圳快马专利商标事务所(普通合伙)44362代理人赵亮刘朗星(51)Int.Cl.G06F12/0871(2016.01)G06F12/0891(2016.01)权利要求书1页说明书2页附图2页(54)发明名称一种动态调整缓存热点数据的方法(57)摘要本发明涉及一种动态调整缓存热点数据的方法,本发明通过动态调整热点数据热度的计算方法,精准淘汰缓存数据的计算方法,更准确的淘汰缓存数据,保留价值高的热点数据;提升缓存中热点数据比重,增加热点数据的缓存命中率。CN109783402ACN109783402A权利要求书1/1页1.一种动态调整缓存热点数据的方法,其特征在于,所述动态调整缓存热点数据的方法步骤为:S1设定一个访问次数阈值M,在系统中定义当访问次数大于阈值的缓存数据不能被移除;S2设定一个每次缓存淘汰数据个数N,用于当缓存数据达到上限,需要进行数据淘汰时,一次性淘汰N个缓存数据;S3当有新的数据被访问时,首先在缓存中查找,如果能缓存命中,则将对象的访问次数加1,并将缓存中的数据对接移动到栈顶;如果不能缓存命中,则经过查询和计算,生成数据对象,将数据对象压入栈顶,设置访问计数为1;S4缓存中其他数据对象向栈底下压一位;S5若缓存未到最大缓存数,则缓存数据调整过程结束;若缓存达到最大缓存数,则触发缓存清理过程;S6缓存清理程序,从栈底向上变量,寻找使用计数最少的N个缓存数据对象,在查找过程中,若发现对象的访问次数大于M,则该对象不属于淘汰数据,并对该对象的访问计数减1。2.根据权利要求1所述的动态调整缓存热点数据的方法,其特征在于,所述动态调整热点数据热度的计算方法通过缓存中数据的访问次数来计算数据的热度,但如果数据长时间在栈底,则逐步降低该数据的热度,从而实现数据热度的动态调整;在动态调整数据热度的基础上,将长时间不访问的、热度最低的数据淘汰掉;既尽量保留访问次数最多的数据、又尽量淘汰最不经常访问的数据,实现缓存数据的竞争淘汰被称为精准淘汰缓存数据的计算方法。2CN109783402A说明书1/2页一种动态调整缓存热点数据的方法技术领域[0001]本发明涉及一种调整缓存热点数据的方法,更具体地说,涉及一种动态调整缓存热点数据的方法。背景技术[0002]在程序功能流程中,会涉及大量的数据,如果所有的数据对象都在功能中进行查询和计算,无疑会大大提升程序的响应时间,导致整个功能执行效率低下,因此需要在程序中建立缓存机制,对可能用到的数据对象进行缓存。但是缓存机制也有几个关键点需要考虑:程序运行空间是有限制的,因此缓存空间也是有限制的,缓存空间应根据程序运行空间内存情况来分配合理的空间大小;由于缓存空间有限,缓存的数据对象也有限,当数据对象数接近缓存上限时,需要有合理的机制来淘汰数据对象,确保留下的对象都是经常使用的对象(即热点数据)。[0003]FIFO是一种简单的队列调整算法,在调整过程中认为最先进入的数据应该最先被淘汰,导致缓存数据命中率低下。由于FIFO算法没有考虑缓存数据的实际使用情况,因此也无法保证缓存中留存的热点数据。[0004]使用LRU算法进行缓存数据淘汰,在考虑缓存数据的历史使用记录的情况下,对最近访问次数少的数据进行淘汰,能比较好的保留热点数据,但是LRU只重点考虑了缓存数据的访问历史情况,而忽略了缓存数据的访问次数情况,在高并发系统访问的情况下,容易导致缓存中充斥中大量最新访问过的、访问次数很低的数据对象。发明内容[0005]本发明要解决的技术问题在于,针对现有技术中的缺陷,提供一种动态调整缓存热点数据的方法。[0006]本发明解决其技术问题所采用的技术方案是:构造一种动态调整缓存热点数据的方法,动态调整热点数据热度的计算方法,精准淘汰缓存数据的计算方法,提升缓存数据命中率。[0007]在本发明所述的动态调整缓存热点数据的方法中,所述动态调整缓存热点数据的方法步骤为:[0008]S1设定一个访问次数阈值M,在系统中定义当访问次数大于阈值的缓存数据不能被移除。[0009]S2设定一个每次缓存淘汰数据个数N,用于当缓存数据达到上限,需要进行数据淘汰时,一次淘汰多少个缓存数据。[0010]S3当有新的数据被访问时,首先在缓存中查找,如果能缓存命中,则将对象的访问次数加1,并将缓存中的数据对接移动到栈顶;如果不能缓存命中,则经过查询和计算,生成数据对象,