【问题标题】:Funky caching versus Memcache versus...?时髦的缓存 vs Memcached vs...?
【发布时间】:2013-02-27 16:46:46
【问题描述】:

我正在开发一个具有旧的、基于 cgi+perl 的可嵌入小部件的网站。我们正在加快小部件的速度,我想知道要使用哪些模式/方法进行缓存,以及人们是否知道我想的两种方法之外的其他方法:

  1. 时髦的缓存:小部件的设置保存在获取参数中,如果文件不存在,我们将使用重写让 PHP 创建文件;然后 Apache 会为后续请求提供该文件,直到 cron 将其清除。
  2. Memcache/d:PHP 可以将结果存储在 Memcache 中,Apache 可以从守护进程中提取(我猜想)。我想这可以做到,但目前不确定文件/类型和标题等。

我在很多场合都使用过#1,而#2 听起来可能是一个有趣的选择(如果可以的话)。在这种情况下还有其他好的选择吗?我们在标准的 LAMP 专用服务器上。

目标是在较大的网站嵌入小部件(我们一直在处理的事情)时最大限度地减少服务器负载...

添加/结论

好的,虽然我很欣赏 Piontek 为解决方案所做的努力,但似乎没有太多其他东西(任何人都分享过)。但是我们已经意识到,处理这个问题的最有效方式是只生成一个文件,并让客户端处理构建结果​​小部件的获取参数和逻辑。

【问题讨论】:

  • 澄清一下;我想知道的不是我们可以在哪里优化 PHP 或 DB 调用,而是该过程结果的良好缓存策略。

标签: php apache caching memcached


【解决方案1】:

为了获得最佳效果,我会使用 Memcache 和 APC (http://php.net/manual/en/book.apc.php)。 Memcache 更多用于缓存数据库查询并提高这方面的性能,而 APC 更多用于提高 PHP 代码的性能。它们一起可以为您提供一个非常可扩展的系统。

【讨论】:

  • 感谢 Piontek,我不确定为什么我没有想到 APC。不过,在我们的例子中,我想时髦的缓存会更快,因为它在创建文件后绕过 PHP,只剩下文件服务和 apache 的工作。所以这个过程可能是: 1 - PHP+memcache+APC 用于首次构建(时髦风格)。 2 - 用于后续请求的 Apache+文件。 3 - Cron rms 文件,我们返回#1
  • 如果您真的关心性能,我建议您看看 HipHop for PHP。 HipHop 是一个“源代码转换器”,旨在通过将 PHP 代码转换为 C++ 代码来减少 CPU 和内存的使用。
  • 感谢@Piontek Media,我也想过这个问题,但我的问题不是关于操作码缓存甚至是使用编译器。除非您认为这可能比 Apache 提供平面文件更快?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-06-20
  • 2010-10-07
  • 2019-02-28
  • 1970-01-01
  • 2017-07-15
  • 2019-09-12
  • 2013-09-28
相关资源
最近更新 更多