-->

请问LRU删除没有被使用一定量的时间条目?(Will the LRU delete entries

2019-06-23 13:27发布

当在内存缓存的可用内存已满,内存缓存使用LRU(最后最近使用)算法来释放内存。 我的问题是将LRU算法,而删除没有被用于一些时间条目(最近一次使用),比过期的项目? 那些即将到期的项不会被删除对确切的时间,但下一次有人试图在访问它(AFAIR)。 所以将LRU算法(也)占密钥到期?

Answer 1:

要了解的memcached如何做LRU你必须去更深入和了解如何存储memcached的项目。 项存储取决于它们的大小,只需把你所有的物品是可以说100K得到存储在相​​同的平板,而在200K等物品存放在不同的平板。

当存储空间已满,并尝试存储10万项,memcached的将适用于板坯LRU。 如果有钥匙过期,或者没有在200K板使用,它们仍然存在,而如果100K板只有热键,基于算法的那些人会被驱逐。

回到你的问题,当内存已满并尝试存储项目,分布式缓存先来看看在你试图写,然后寻找至少使用过的物品板坯过期的项目。 所以,是的,它确实考虑到按键期满,或者更好的是,过期的键先去LRU之前。

此外,当你试图让这就是过期了的项目,该项目被逐出和存储回收。

上(在谷歌大量的memcached的内存分配这也解释了LRU一样,所以很多对这个阅读)详细信息:

http://returnfoo.com/2012/02/memcached-memory-allocation-and-optimization-2/

http://www.adayinthelifeof.nl/2011/02/06/memcache-internals/

和一个非常好的工具,我建议每个memcached的话题:

http://code.google.com/p/phpmemcacheadmin/

希望能帮助到你!



Answer 2:

从我知道这种说法是不正确的。

“回到你的问题,当内存已满并尝试存储项目,分布式缓存先来看看在你试图写,然后寻找至少使用过的物品板坯过期的项目。所以,是的,它确实考虑到占按键期满,或者更好的是,过期的键先去LRU之前。”

内存缓存将根据LRU驱逐项(如果有任何过期的项目,只要他们比另一个关键最近使用也没关系(即使有效))。

经测试前一阵子在内存缓存1.4.4。



文章来源: Will the LRU delete entries that have not been used for some amount of time?
标签: memcached lru