humanmade/wordpress-pecl-memcached-object-cache

一个使用 memcached (不是 memcache) PECL 扩展的 WordPress 对象缓存。

v2.1.0 2020-08-28 18:42 UTC

This package is auto-updated.

Last update: 2024-08-24 00:53:18 UTC


README

Build Status

❗ 关于插件状态的说明

自上次更新此插件以来,WordPress 引入了许多缓存 API 改进,例如 wp_cache_get_multiple。此插件尚未更新以利用这些新功能,因为 Human Made 现在已经使用 Redis 作为自己的缓存后端。它仍然应该可以工作,但与 WordPress 最新版本的函数相比,效率可能不会很高。

概述

该项目是一个 WordPress 对象缓存后端,实现了 Memcached PECL 扩展 中的所有可用方法。关于这与 Memcache PECL 后端的区别(注意 "d" 的包含/排除),请参阅我关于该主题的 文章

安装

  1. 安装 Memcached 守护进程。Memcached 应该可以通过您选择的 Linux 发行版的包管理器获得。

    对于 Ubuntu 和 Debian

    apt-get install memcached

    对于 CentOS

    yum install memcached

    请注意,您可能需要审查 Memcached 配置 指令。为了从 Memcached 获得最佳结果,您需要根据系统和用例对其进行配置。

  2. 启动 Memcached 守护进程

    service memcached restart
  3. 验证 Memcached 是否已安装并运行。

    1. 从您的服务器,使用 telnet 进入 Memcached 服务器

      telnet localhost 11211

      您应该会看到类似以下输出

      Trying 127.0.0.1...
      Connected to localhost.
      Escape character is '^]'.
    2. 在 Telnet 提示符中输入 version。如果 Memcached 已安装并正在运行,您应该看到类似以下内容

      VERSION 1.4.14 (Ubuntu)
    3. 通过输入 ctrl + ]、按 enter 键,然后输入 quit 并按 enter 键退出 Telnet。

  4. 在您的服务器上安装 Memcached PECL 扩展。请注意,Memcached 有两个不同的 PHP 接口;一个是 PECL Memcache,另一个是 PECL Memcached。在这个情况下,Memcached 名称末尾的 "d" 非常重要。您应该可以从您的 Linux 发行版的包管理器中安装 PECL Memcached。

    对于 Ubuntu 和 Debian

    apt-get install php5-memcached

    对于 CentOS

    yum install php-pecl-memcached

    请注意,如果您有更定制的 PHP 安装,您可能需要采取一些额外步骤来将 PECL Memcached 扩展链接到 PHP。如果您正在使用包管理器版本 PHP 和 PECL Memcached 设置,则通常不需要这样做。例如,许多 yum.conf 文件将排除以 php 开头的软件包。您可能需要修改配置文件以安装此软件包。

  5. 验证 Memcached 守护进程正在运行,并且可以通过 PHP 的 PECL Memcached 扩展访问。测试此操作的最简单方法是运行一个简单的 PHP 脚本,该脚本连接到 Memcached 并尝试设置和检索一个值。

    1. 进入 PHP 的交互式 shell

      php -a
    2. 在交互式 shell 中输入以下内容

      $m = new Memcached();
      $m->addServer( '127.0.0.1', 11211 );
      $m->set( 'foo', 100 );
      echo $m->get( 'foo' ) . "\n";
    3. 如果最后一个命令返回 100,则一切正常!如果得到空白输出,则表示有问题。

      请注意,如果您的 PHP 配置不支持交互式 shell,您可以使用上面的代码创建一个在浏览器中执行的脚本。交互式 shell 在验证步骤中更容易使用,因为它不需要功能齐全的 Web 服务器。

  6. 现在服务器依赖问题已经解决,剩下的配置都在WordPress应用程序中。将object-cache.php文件放置在您的wp-content文件夹中。例如,如果您的WordPress安装根目录为/srv/www/wordpress,则object-cache.php的位置为/srv/www/wordpress/wp-content/object-cache.php。请注意,object-cache.php是一个WordPress插入式插件。它不是一个常规插件或MU插件。插入式插件直接位于wp-content文件夹中。

  7. 将以下内容添加到您的wp-config.php文件中

    global $memcached_servers;
    $memcached_servers = array(
        array(
            '127.0.0.1', // Memcached server IP address
            11211        // Memcached server port
        )
    );

    如果您的Memcached服务器位于不同的服务器或端口,根据需要调整这些值。如果您有多个Memcached实例,请将额外的服务器添加到数组中

    global $memcached_servers;
    $memcached_servers = array(
        array(
            '1.2.3.4',
            11211
        ),
        array(
            '1.2.3.5',
            11211
        )
    );
  8. 为了测试WordPress对象缓存设置,将以下代码作为MU插件添加

    <?php
    $key   = 'dummy';
    $value = '100';
    
    $dummy_value = wp_cache_get( $key );
    
    if ( $value !== $dummy_value ) {
        echo "The dummy value is not in cache. Adding the value now.";
        wp_cache_set( $key, $value );
    } else {
        echo "Value is " . $dummy_value . ". The WordPress Memcached Backend is working!";
    }

    添加代码后,请重新加载您的WordPress网站两次。在第二次加载时,您应该在页面上方看到一个成功消息。在验证设置后,请删除MU插件。

作者

  • Zack Tollman
  • 10up