算法【LRU 缓存淘汰算法】

一、简介

       每次访问的时候需要去取内存里的数据,没取到就添加到内存,但是,又不想取到的内存是过于陈旧的。

        LRU【缓存淘汰算法】:最近最少使用策略来管理内存数据。根据数据的历史访问记录来进行淘汰缓存,即假如数据最近被访问过,那么它以后被访问到的几率会更高,也就不会被淘汰。

        注:Redis的缓存过期实现也是用的LRU缓存淘汰策略。

二、实现

       【核心思想】:维护一个有序的链表,链表尾部的数据就是最早被访问过的数据,当有新数据被访问时,就从链表的表头开始顺序遍历访问。

        2.1、当访问的代理IP不在链表内时,就会添加到链表头部。如下,维护了一个6个节点的链表,这6个proxyIp在链表内都没有被缓存过。                

           

        2.2、当链表缓存满时,此时我在访问一个新的代理proxy_ip7的时候,就会以最近很少使用的表尾的proxy_ip1节点删除掉,然后,在将当前proxy_ip7添加到表头。

   

          

        2.3、当访问的代理ip已经在缓存中时,如,proxy_ip5已经缓存过,我们将其遍历出来,然后将其所在节点删除,最后再将其插入到链表的表头。            

            

 

 

 

 

 

 

 

 

 

 

 

 

       

posted on   木乃伊人  阅读(33)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示