php - Memcached的flush_all为什么要设计成只删除键而不删除值?

查看:67
本文介绍了php - Memcached的flush_all为什么要设计成只删除键而不删除值?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

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

解决方案

你可以看一下这篇文章

Lazy Expiration

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

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

这篇关于php - Memcached的flush_all为什么要设计成只删除键而不删除值?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆