首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

LRU 缓存机制

什么是LRU?...很多时候尤其以前内存比较值钱的时候,我们空间比较宝贵,不会很大,那么就存在了重点数据和非重点数据,我们要在内存不够的时候有限保存重点数据淘汰非重点数据;LRU也就是说我们认为最近使用过的数据应该是重点数据...1.手机上划显示的任务列表,都是按照最近打开顺序排列的 2.redis的lru淘汰策略 思路: 1.利用linkedhashmap实现lru,因为其本身就存在lru策略,只需要使用即可,这部分代码放最下面...2.自己写lru 手写LRU算法思路: 关注LRU算法需要什么?...要能做到快速增加快速查找,以及数据根据访问顺序淘汰 那么这里就想到用Map保障数据的随机访问速度,用双链表保障数据的快速增加 如下代码,我们定义了双链表的结点以及双链表的重要操作(都是我们做数据新增和删除需要的数据) 手写LRU

20610

Redis 缓存淘汰机制LRU 淘汰

需要注意的是在这里的lru也不是严格的lru算法,它是基于一个配置的大小值maxmemory_samples,循环遍历samples,随机获取key然后找到一个最合适的key,然后把该key删除掉。...网上也有文章分析,在这种类lru算法下,基本和真正的lru算法的性能没有太大差异,但是相比较于真正严格的lru效率要更高。...判断那个key是最合适是通过比较该key的lru时间和sever里维护的lru_clock差值。server.lruclock在定时事件中会被定时循环更新,会更新成和当前时钟值有个倍数关系的值。...return (server.lruclock - o->lru) * REDIS_LRU_CLOCK_RESOLUTION; } else { return ((REDIS_LRU_CLOCK_MAX...- o->lru) + server.lruclock) * REDIS_LRU_CLOCK_RESOLUTION; } }

2.4K00
领券