php - Memcached的flush_all为什么要设计成只删除键而不删除值?
PHP中文网
PHP中文网 2017-06-12 09:20:27
0
1
554

不删除值意味着值仍然占据的内存空间,而没有了键,这些值的存在也没办法访问啊,这样做的意义是什么?

PHP中文网
PHP中文网

认证0级讲师

全部回复(1)
迷茫

你可以看一下这篇文章:

Lazy Expiration

memcached内部不会监视记录是否过期,而是在get时查看记录的时间戳,检查记录是否过期。 这种技术被称为lazy(惰性)expiration。因此,memcached不会在过期监视上耗费CPU时间。

flush_all只做一件事:把所有键值标记为已过期,但并不回收内存。因为当时没有回收内存这个必要。只有当下一次用户访问同一键值时,memcached才检查键值,这时发现此键值已过期,于是回收对应此键值的内存。这样做的目的是为了最大限度的节省CPU时间。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!