memcached之memcached中的惰性过期机制是如何运作的
think
阅读:229
2025-05-04 20:05:19
评论:0
(首先,我的英语不是很好,拜托了)
正如我们所知,memcached 提供延迟过期,并“替换”其 slab 中的 LRU 数据,但我不太清楚它是如何做到这一点的。例如,如果一个slab已满,但是这个slab中的一些数据已经过期,那么当数据添加到slab中时会发生什么?
- memcached 是否找到一些过期数据并用添加的数据替换它们,或者
- 它是否替换了 LRU 数据,或者
- 它还有其他作用吗?
据我所知,惰性过期是指 memcached 不会主动从每个 slab 中删除过期数据,而是仅在引用过期条目的键时删除过期条目。这是一种资源浪费,不是吗?
请您参考如下方法:
请求项目时(获取请求)Memcached 检查 返回前查看该项目是否仍然有效的过期时间 它给客户。
同理向缓存中添加新项时,如果缓存已满, 它会在更换之前查看过期的元素以更换 缓存中最少使用的项目。
所以过期的项目只有在收到请求时才会被清除 为过期项目发送或过期项目被清除,因为 需要存储空间。
声明
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。



