我正在使用flush all命令删除我的Memcache服务器上的所有键/值对。
当值被删除时,通过phpMemcachedAdmin查看Memcache服务器时有两件事我无法理解
刷新后,内存使用率不会重置为0。我仍然有77%的使用率和22%的浪费(只是一个例子,但你得到了精神)。怎么可能?
所有以前的项目仍然存在。例如,查看特定的slab将显示所有先前的键/值对,尽管flush all命令。怎么可能?
由于
答案 0 :(得分:0)
这是因为memcache在读取时刷新,而不是在写入时刷新。当你flush_all时,这些操作是为性能而设计的:它只是意味着超过那个时间读取的任何东西都会立即过期,即使它仍然在缓存中。它只更新一个数字,然后在每次获取时检查它。
此优化显着提高了memcache性能。想象一下,如果其他几个人正在同时搜索或插入同花。