Memcached的LRU算法

前言

今天面试被新浪一个很帅的师兄问到了memcached的LRU源码实现,结果我扯了一堆如何用redis实现LRU替换算法,唉,学艺不精啊

原文链接: Memcached的LRU算法

LRU算法

LRU是Least Recently Used最近最少使用算法。源于操作系统使用的一种算法,对于在内存中但最近又不用的数据块叫做LRU,操作系统会将那些属于LRU的数据移出内存,从而腾出空间来加载另外的数据

Memcached(版本:1.6.0-beta1)的相关代码:

Memcached的LRU算法_第1张图片

属于LRU的item是被时间逆序排序了,一个item的失效时间应该是永远比它自身上次被访问的时间大。所以在找到一个item的失效时间比oldset_live这个时间小之前,我们只需要把已经逆序排序的item继续往结尾遍历即可,一旦找到这个item,其他剩余的item也就可以判定为过期了


你可能感兴趣的:(Memcached的LRU算法)