我最近一直在缓存页面的输出缓冲区,但现在我想缓存变量的值。
我有一个PHP文件可以执行大量的MySQL查询,然后用这些查询中的各种数据填充变量。
其中一些变量永远不会改变但有些变量会经常变化。如何以这种方式缓存某些变量?我正在使用基于文件的缓存,如果有帮助的话。
答案 0 :(得分:10)
答案 1 :(得分:2)
您可以使用serialize转储任何变量(包括数组),反之为unserialize。
转储到文件将是一个非常无用的缓存解决方案,你可以考虑使用memcache,它可以在内存中存储任何变量,但需要在服务器端进行一些工作。
我发现带有MEMORY表的本地mysql也很有用......
答案 2 :(得分:1)
我不知道你是如何构建当前的缓存内容的,所以这只是一个关于如何将任何类型的变量(只要其内容可序列化)保存到文件的简短模板。
file_put_contents($filename, serialize($variable));
答案 3 :(得分:0)
由于您询问了基于文件的缓存,memcache
和APC
都不是选项,尽管在存储的数据不是太大的情况下我肯定会推荐这两种选择。
对于基于文件的缓存,我建议您使用缓存框架。例如,您可以使用Zend_Cache
中的Zend Framework
。它允许您使用一个漂亮的面向对象的接口将查询结果存储在文件中。此外,您还有很多选项,例如验证和序列化。还有其他缓存框架。