PHP APC:当APC缓存已满时会发生什么?

13 php apc

当您尝试将变量添加到APC并且APC缓存已满时会发生什么?它是否自动从缓存中删除最少使用的变量?

Mat*_*hen 16

根据APC:运行时配置,"如果缓存耗尽可用内存,如果ttl等于0,缓存将完全清除.否则,如果ttl大于0,APC将尝试删除过期的条目".

因此,如果存在非零TTL,则将删除其生存时间已过的条目.;)否则,它将删除整个缓存.

我注意到这并没有真正解决如果缓存耗尽内存而你有一个过高的TTL会发生什么.


Jam*_*ler 5

根据经验(我们在生产中运行),如果你没有设置TTL或者TTL非常高并且没有任何过时,则刷新整个缓存(如在空的情况下).你真的想尝试避免这种情况,因为它会导致PHP必须处理的下一个请求出现负载峰值,因为APC需要编译它并将其存储在内存中所需的每个文件(这个过程比没有启用缓存).此外,如果你收到大量的流量和空缓存,你将体验缓存猛击(请参阅谷歌的恶意)

作为旁注,请参阅这个旧的演示文稿,以获取相当粗略的APC指南以及需要注意的事项http://www.slideshare.net/oscon2007/os-gopal Somethings可能已经过时,但理论仍然适用.