The invention provides a data caching method and device, which includes: adding the data to the LRU queue when there is data to be cached; transferring the data from the LRU queue to the LFU queue when there is data with access heat greater than the preset heat threshold in the LRU queue; and indexing the data eliminated from the LRU queue. Record the LRU elimination list, and record the index of the data eliminated from the LFU queue to the LFU elimination list; When the hit times of the LRU elimination list reach the preset first hit threshold, increase the space of the LRU queue, reduce the space of the LFU queue, and reset the hit times of the LRU elimination list; and, when the hit times of the LFU elimination list reach the preset first hit threshold, increase the space of the LRU queue, and reset the hit times of the LFU elimination list; and, when the When the number of hits reaches the preset second hit threshold, increase the space of LFU queue, reduce the space of LRU queue, and reset the number of hits of LFU elimination list. By applying the embodiment of the invention, the cache hit rate can be improved and the cache effect can be optimized.
【技术实现步骤摘要】
一种数据缓存方法及装置
本专利技术涉及数据处理
,尤其涉及一种数据缓存方法及装置。
技术介绍
缓存是影响存储系统性能的重要因素之一。由于数据直接从磁盘进行读取的速度比CPU(CenterProcessUnit,中央处理单元)的运算速度慢太多,数据从磁盘读取速度会成为存储系统性能的瓶颈,因此开发了各种缓存系统来提高性能。所谓的缓存,就是使用内存将数据保存起来,下次再读取数据时,从内存直接读取数据,无需从磁盘读取数据,提升了存储系统的性能。因此一个好的缓存策略对存储系统的性能影响是很大的。LRU(LeastRecentlyUsed,最近最少使用)算法和LFU(LeastFrequentlyUsed,最不经常使用)算法是最常用的两种缓存算法。其中:LRU算法是按照缓存数据进入缓存队列的先后顺序来处理的缓存策略,即先进入缓存队列的数据最先淘汰。LFU算法是根据缓存页面的访问频度来决定缓存页面淘汰顺序的缓存策略,即缓存页面访问频度越高,缓存页面的引用计数就会越大,缓存队列按照缓存页面的引用计数进行排队,引用计数最小的缓存页面最早被淘汰。
技术实现思路
本专利技术提供一种数 ...
【技术保护点】
1.一种数据缓存方法,应用于存储设备,其特征在于,所述存储设备的缓存空间包括最近最少使用LRU队列和最不经常使用LFU队列,所述方法包括:当存在待加入缓存的数据时,将该数据加入所述LRU队列,当所述LRU队列中存在访问热度大于预设热度阈值的数据时,将该数据从所述LRU队列中转移至所述LFU队列;将从所述LRU队列中淘汰的数据的索引记录到LRU淘汰列表,并将从所述LFU队列中淘汰的数据的索引记录到LFU淘汰列表;当所述LRU淘汰列表的命中次数达到预设第一命中阈值时,增加所述LRU队列的空间,减小所述LFU队列的空间,并重置所述LRU淘汰列表的命中次数;以及,当所述LFU淘汰列 ...
【技术特征摘要】
1.一种数据缓存方法,应用于存储设备,其特征在于,所述存储设备的缓存空间包括最近最少使用LRU队列和最不经常使用LFU队列,所述方法包括:当存在待加入缓存的数据时,将该数据加入所述LRU队列,当所述LRU队列中存在访问热度大于预设热度阈值的数据时,将该数据从所述LRU队列中转移至所述LFU队列;将从所述LRU队列中淘汰的数据的索引记录到LRU淘汰列表,并将从所述LFU队列中淘汰的数据的索引记录到LFU淘汰列表;当所述LRU淘汰列表的命中次数达到预设第一命中阈值时,增加所述LRU队列的空间,减小所述LFU队列的空间,并重置所述LRU淘汰列表的命中次数;以及,当所述LFU淘汰列表的命中次数达到预设第二命中阈值时,增加所述LFU队列的空间,减小所述LRU队列的空间,并重置所述LFU淘汰列表的命中次数。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:当接收到数据读取请求时,根据所述数据读取请求查询所述LRU队列和/或LFU队列;若命中LRU队列或LFU队列,则从LRU队列或LFU队列中读取所命中数据,并将所命中数据的访问热度加一。3.根据权利要求2所述的方法,其特征在于,所述根据所述数据读取请求查询所述LRU队列和/或LFU队列之后,还包括:若未命中LRU队列和LFU队列,则根据所述数据读取请求查询所述LRU淘汰列表和/或LFU淘汰列表;若命中LRU淘汰列表或LFU淘汰列表,则将LRU淘汰列表或LFU淘汰列表的命中次数加一。4.根据权利要求1所述的方法,其特征在于,所述增加所述LRU队列的空间,减小所述LFU队列的空间,包括:将所述LRU队列中的缓存页面数量加一,并将所述LFU队列中的缓存页面数量减一;所述增加所述LFU队列的空间,减小所述LRU队列的空间,包括:将所述LFU队列中的缓存页面数量加一,并将所述LRU队列中的缓存页面数量减一。5.根据权利要求1-4任一项所述的方法,其特征在于,初始状态下,所述LRU队列和所述LFU队列各占所述存储设备的缓存空间的一半。6.一种数据缓存装置,应用于存储设备,其特征在于,所述存储设备的缓存空间包括最近最少使用LRU队列和最不经常使用LFU队列,所述装置包括:缓存队列维护单元,用...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。