2013-08-06 19 views
-1

安装程序是一个运行带apc的apache的Linux机器。 TwoLevels-缓存计划为apc +文件。即使数据保存在第一级,Zend两级缓存是否可以将所有内容保存到第二级?Zend_Cache_Backend_TwoLevels如何处理重新启动的服务器

我想知道如果我重新启动我的服务器会发生什么。第一级apc缓存中的数据会丢失还是可以从第二级文件缓存中检索?

回答

0

从代码的外观来看,答案是“取决于”。如果优先级足够高并且快速缓存未满或快速填充,则数据将存储在两个高速缓存中。否则它只会被存储在'缓慢'缓存中。

但是我确定重启后APC缓存将为空。 PHP没有任何明智的方法来检测这种情况,并为您备份缓存,并且没有真正的理由。您的应用程序不应该依赖存在的缓存数据,并且应该在缺失时重新生成它。

+0

谢谢Tim!我不是依靠缓存来存储数据,而是依赖性能。当第一级“丢失”时,从第二级永久缓存获取重要数据,例如通过重新启动,最有可能比第一次访问时重新计算和回收数据更快。同样在我的应用程序中,如果数据从第二级移动到第一级,则最好复制而不是移动数据,以便它保留在第二级以供以后参考。这并不总是很聪明,所以我想知道Zend TwoLevels Cache使用哪种方式。 – Armin

+0

也许你可以设置一个在启动时运行的PHP脚本来预热这些缓存以避免缓慢的第一次访问问题。 –