memcache telnet flush_all 没有删除所有项目

memcache telnet flush_all not removing all items

我刚开始使用内存缓存,所以我可能遗漏了一些明显的东西。我使用 telnet 连接到内存缓存,然后尝试 flush_all 并收到消息 'OK'。然后我 运行 'stats items' 仍然看到一个项目列表。当我 运行 'stats cachedump 16 100' 我仍然看到列出的项目。如果我杀死 memcache 服务器并让它自己重新启动,我可以到达我想要的位置(实际上是在尝试调试如何在 memcache 失败时处理错误)但它是最快的,就像它重新启动一样,谢谢使用 PID 来杀死.

您不需要终止进程。

Memcache 不会在您执行 flush_all 时释放内存。它只是将内存缓存中所有对象的过期时间设置为当前时间。当您确实获得一个键时,它将执行 return null 并且该对象将被清除。它使用惰性方法刷新所有对象。

您可以阅读 wiki here。转到页面末尾。