如何使用Memcache来加速PHP?

如何使用Memcache来加速PHP?,php,optimization,Php,Optimization,我已经为我的PHP Apache localserver服务器(XAMPP)启用了memcache扩展 但是我不知道如何使用它来加速我的PHP脚本 在我想加速的每一页的顶部写下面的代码就足够了吗?还是我应该做点别的 /* procedural API */ $memcache_obj = memcache_connect('127.0.0.1', 11211); /* OO API */ $memcache = new Memcache;

我已经为我的PHP Apache localserver服务器(XAMPP)启用了memcache扩展

但是我不知道如何使用它来加速我的PHP脚本 在我想加速的每一页的顶部写下面的代码就足够了吗?还是我应该做点别的

       /* procedural API */
       $memcache_obj = memcache_connect('127.0.0.1', 11211);

       /* OO API */
       $memcache = new Memcache;
       $memcache->connect('127.0.0.1', 11211);
phpinfo()显示以下详细信息

        memcache support    enabled
        Active persistent connections   0
        Version 2.2.4-dev
        Revision    $Revision: 1.99 $
<谢谢>

> <强> > 想考虑使用,但也有利弊。

您已经安装了memcache。它不会加速任何东西,除非你用它做点什么。您可以缓存四种基本内容:

  • 从文件中加载内容
  • 从数据库加载内容
  • 从远程主机加载内容;及
  • 存储需要花费大量时间计算的结果

  • 除非您将其用于某些用途,否则它不会做任何事情。

    您需要对代码及其使用的算法进行一些基本的评测。Memcache就像在食谱中添加盐:你需要将盐添加到正确的部分,否则你得不到好处,反而会碍事

    在PHP中,有几种类型的缓存可以提高web页面的性能,memcache只是其中之一。如果有许多相同的查询,可以在数据库中打开查询缓存。如果您有许多页面连接,但查询流量很少,那么您将受益于连接池(这将缓存TCP连接)和数据库中的线程缓存(这将缓存数据库中的CPU资源)

    如果您正在抛出大量数据,特别是字符串、大数组或对象,您可以开始考虑引用并更新字符串处理,而不需要进行不必要的重新复制(例如,在循环中串联字符串非常昂贵-将它们添加到数组中,并在最后对其进行一次内爆)。这可以大大提高性能和内存

    如果有很多查询在一个页面中一次又一次地获取相同的信息,则需要改进数据存储层。这将允许您进行一次查询以获取一行,然后在整个页面中重复使用数据,而不是再次获取数据。(这通常是从一堆乱七八糟的任意SQL转到对象持久化层的最佳理由。)请注意,这可能涉及到应用程序的重新架构。您可以将对象数据的缓存添加到对象层,这将使所有使用这种对象的人受益,这将是一个巨大的胜利。这对于memcache来说是一个很好的观点,应用程序代码甚至不需要知道。只需注意数据生命周期,以及数据是否或如何提前更新

    如果您有很多页面进行相同的稍微昂贵的查询(即使是通过数据访问层的代理),那么您可以将其缓存几秒钟。它不一定是memcache,但这是一个很好的选择

    最后,如果你有很多永远不会改变的文件,你可以使用一个单独的服务器,只服务静态文件。这为您的执行环境提供了执行代码的更多空间,并且您可以调整静态文件服务器,使其能够快速返回文件。这可能是网站性能感知的一大胜利

    在我看来,缓存应该得到改进,而不是启用应用程序