如果memcached中的项目设置为永不过期,是否可以免除LRU驱逐?
我所看到的文档并没有描绘出哪个优先。在我看来,让LRU仅适用于有效期>的项目是理想的(内部可能非常复杂)。 0
答案 0 :(得分:16)
不,它不是免税的。 Memcached是缓存,而不是持久存储。其中的任何项目,或整个缓存本身可能随时消失(但除非它已满,否则不太可能,或者存在重大问题)。
在内存压力很大的情况下,LRU算法会删除任何必要的内容。
什么是memcached的缓存?
缓存结构是LRU(最近最少使用),加上到期超时。将项目存储到memcached中时,您可以说明它在缓存中应该有效多长时间。这是永远的,或将来的某个时间。如果服务器内存不足,则先替换过期的slab,然后接下来最旧的未使用的slab。
如果系统没有过期数据区域,它将丢弃最近最少使用的内存块(slab)。
答案 1 :(得分:3)
doc表示当expirezero_does_not_evict
设置为' true'时,0 exptime的项目无法逐出。