如果memcached中的一个项目被设置为永不过期,那么它是否可以免于LRU驱逐?
我看过的文档并没有清楚地说明哪个优先。在我看来,让LRU只应用于过期时间大于0的项目将是理想的(内部可能非常复杂)。
发布于 2011-02-11 04:56:08
不,它不是免税的。Memcached是一个缓存,而不是持久存储。它里面的任何项目,或者整个缓存本身都可能在任何时候消失(但它不太可能消失,除非它已经满了,或者有一个大问题)。
在沉重的内存压力下,LRU算法将删除任何它认为必要的东西。
什么是memcached的缓存?
缓存结构是LRU (最近最少使用)加上过期超时。当您将项存储到memcached中时,您可以声明它在缓存中的有效时间。这是永远的,或者是在未来的某个时间。如果服务器内存不足,则首先替换过期的存储片,然后再替换最旧的未使用存储片。
如果系统没有过期数据区域,它将丢弃最近最少使用的内存块(存储片)。
发布于 2016-04-18 18:37:01
doc表示,当expirezero_does_not_evict设置为'true‘时,exptime为0的项不能被逐出。
https://stackoverflow.com/questions/4962290
复制相似问题