不删除值意味着值仍然占据的内存空间,而没有了键,这些值的存在也没办法访问啊,这样做的意义是什么?
迷茫2017-06-12 09:22:27
你可以看一下这篇文章:
Lazy Expiration
memcached内部不会监视记录是否过期,而是在get时查看记录的时间戳,检查记录是否过期。 这种技术被称为lazy(惰性)expiration。因此,memcached不会在过期监视上耗费CPU时间。
flush_all只做一件事:把所有键值标记为已过期,但并不回收内存。因为当时没有回收内存这个必要。只有当下一次用户访问同一键值时,memcached才检查键值,这时发现此键值已过期,于是回收对应此键值的内存。这样做的目的是为了最大限度的节省CPU时间。