memcached之memcached中的惰性过期机制是如何运作的

think 阅读:229 2025-05-04 20:05:19 评论:0

(首先,我的英语不是很好,拜托了)

正如我们所知,memcached 提供延迟过期,并“替换”其 slab 中的 LRU 数据,但我不太清楚它是如何做到这一点的。例如,如果一个slab已满,但是这个slab中的一些数据已经过期,那么当数据添加到slab中时会发生什么?

  1. memcached 是否找到一些过期数据并用添加的数据替换它们,或者
  2. 它是否替换了 LRU 数据,或者
  3. 它还有其他作用吗?

据我所知,惰性过期是指 memcached 不会主动从每个 slab 中删除过期数据,而是仅在引用过期条目的键时删除过期条目。这是一种资源浪费,不是吗?

请您参考如下方法:

请求项目时(获取请求)Memcached 检查 返回前查看该项目是否仍然有效的过期时间 它给客户。

同理向缓存中添加新项时,如果缓存已满, 它会在更换之前查看过期的元素以更换 缓存中最少使用的项目。

所以过期的项目只有在收到请求时才会被清除 为过期项目发送或过期项目被清除,因为 需要存储空间。


标签:Memcached
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

关注我们

一个IT知识分享的公众号