(首先,我的英语不是很好,拜托)
众所周知,memcached 提供延迟过期,并“替换”其平板中的 LRU 数据,但我不太清楚它是如何做到的。比如一个slab已经满了,但是这个slab里面的一些数据已经过期了,那么在slab中添加数据会发生什么?
- memcached 是否找到一些过期数据并用添加的数据替换它们,或者
- 它是否替换了 LRU 数据,或者
- 它还有其他作用吗?
据我所知,延迟过期是这样的,memcached 不会主动从每个slab 中删除过期数据,而是仅在引用过期条目的键时删除过期条目。这很浪费资源,不是吗?