美文网首页
Redis的LRU实现

Redis的LRU实现

作者: 小动乾坤 | 来源:发表于2024-03-01 22:02 被阅读0次

传统的LRU是使用栈的形式,每次都将最新使用的移入栈顶,但是用栈的形式会导致执行select *的时候大量非热点数据占领头部数据,所以需要改进。Redis每次按key获取一个值的时候,都会更新value中的lru字段为当前秒级别的时间戳。Redis初始的实现算法很简单,随机从dict中取出五个key,淘汰一个lru字段值最小的。在3.0的时候,又改进了一版算法,首先第一次随机选取的key都会放入一个pool中(pool的大小为16),pool中的key是按lru大小顺序排列的。接下来每次随机选取的keylru值必须小于pool中最小的lru才会继续放入,直到将pool放满。放满之后,每次如果有新的key需要放入,需要将pool中lru最大的一个key取出。淘汰的时候,直接从pool中选取一个lru最小的值然后将其淘汰。

相关文章

  • LRU

    LRU: 缓存置换算法,mysql page, redis缓存等使用实现一个LRU, 主要需要考虑几点:一个双向链...

  • 一个今日头条的面试题——LRU原理和Redis实现

    很久前参加过今日头条的面试,遇到一个题,目前半部分是如何实现 LRU,后半部分是 Redis 中如何实现 LRU。...

  • redis 如何实现 LRU

    LRU 是一个缓存置换算法,在缓存有限的情况下,如果有新的数据加载至缓存,则需要考虑将不会再继续被访问的数据剔除掉...

  • 【日拱一卒】链表——如何实现lru

    LRU Redis的内存淘汰机制好几种,如ttl、random、lru。 lru(less recently us...

  • 2018-02-28

    Using Redis as an LRU cache When Redis is used as a cache...

  • redis 仅用做缓存的配置

    将redis当做使用LRU算法的缓存来使用 LRU是Redis唯一支持的回收方法。 maxmemory配置指令用于...

  • redis的lru缓存算法实现

    https://yq.aliyun.com/articles/63034

  • 四 redis内存淘汰策略思想

    目标 分析redis的内存淘汰策略, lru算法简介 lru算法简介 Least recently used(LR...

  • 缓存相关

    cache淘汰算法:LIRS 算法 缓存那些事 Redis缓存淘汰算法,LRU算法,LRU算法讲解

  • LRU算法

    1、LRU算法概述 redis默认情况下就是使用LRU策略的,因为内存是有限的,但是如果你不断地往redis里面写...

网友评论

      本文标题:Redis的LRU实现

      本文链接:https://www.haomeiwen.com/subject/nxaczdtx.html