在PHP中缓存变量

时间:2011-04-14 06:48:19

标签: php caching

我最近一直在缓存页面的输出缓冲区,但现在我想缓存变量的值。

我有一个PHP文件可以执行大量的MySQL查询,然后用这些查询中的各种数据填充变量。

其中一些变量永远不会改变但有些变量会经常变化。如何以这种方式缓存某些变量?我正在使用基于文件的缓存,如果有帮助的话。

4 个答案:

答案 0 :(得分:10)

是的,基于文件的缓存是一种选择。

还有其他选项,例如memcacheAPC

你也应该看看这些。如果您的应用程序对MySQL服务器造成了很大的负担,并且您的数据库已经过优化,则可以采取缓存。

答案 1 :(得分:2)

您可以使用serialize转储任何变量(包括数组),反之为unserialize

转储到文件将是一个非常无用的缓存解决方案,你可以考虑使用memcache,它可以在内存中存储任何变量,但需要在服务器端进行一些工作。

我发现带有MEMORY表的本地mysql也很有用......

答案 2 :(得分:1)

我不知道你是如何构建当前的缓存内容的,所以这只是一个关于如何将任何类型的变量(只要其内容可序列化)保存到文件的简短模板。

file_put_contents($filename, serialize($variable));

答案 3 :(得分:0)

由于您询问了基于文件的缓存,memcacheAPC都不是选项,尽管在存储的数据不是太大的情况下我肯定会推荐这两种选择。

对于基于文件的缓存,我建议您使用缓存框架。例如,您可以使用Zend_Cache中的Zend Framework。它允许您使用一个漂亮的面向对象的接口将查询结果存储在文件中。此外,您还有很多选项,例如验证和序列化。还有其他缓存框架。