【问题标题】:Caching variables in PHP在 PHP 中缓存变量
【发布时间】:2011-08-05 07:10:35
【问题描述】:

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

我有一个 PHP 文件,它执行一堆 MySQL 查询,然后用来自这些查询的各种数据填充变量。

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

【问题讨论】:

  • Writing simple caching system in PHP 和许多其他的可能重复
  • 你能澄清你的问题吗?如果你已经有了缓存机制,那有什么问题呢?
  • 除非网站很大,而且写得不好(慢),任何速度提升都可以忽略不计。

标签: php caching


【解决方案1】:

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

还有其他选项,例如 memcacheAPC

你也应该看看这些。如果您的应用程序在 MySQL 服务器上施加了大量负载,并且您的数据库已经优化,那么您可以采取缓存措施。

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

        【解决方案4】:

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

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2014-03-24
          • 2011-10-26
          • 2013-08-31
          • 2015-04-15
          • 2011-09-16
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多