设置Ubuntu上的内存缓存

本节提供在Ubuntu上安装内存缓存的说明。

INFO
Adobe建议使用memcached版本3.0.5或更高版本。

由于PHP对memcache没有本机支持,因此您必须安装扩展以便PHP使用它。 有两个可用的PHP扩展,请务必解码要使用哪个PHP扩展:

  • memcache (no d) — 不是定期维护的较旧但常用的扩展。
    当前memcache扩展​ 不适用于PHP 7。 ​请参阅有关memcache🔗的PHP文档。

    Ubuntu的确切名称为php5-memcache

  • memcachedd) — 与PHP 7兼容的更新和维护的扩展。 请参阅有关memcached🔗的PHP文档。

    Ubuntu的确切名称为php5-memcached

在Ubuntu上安装和配置内存缓存

要在Ubuntu上安装和配置memcached

  1. 作为具有root权限的用户,输入以下命令:

    code language-bash
    apt-get -y update
    
    code language-bash
    apt-get -y install php5-memcached memcached
    
  2. 更改CACHESIZE-l的memcached配置设置:

    1. 在文本编辑器中打开/etc/memcached.conf

    2. 找到-m参数。

    3. 将其值更改为至少1GB

    4. 找到-l参数。

    5. 将其值更改为127.0.0.1localhost

    6. 将更改保存到memcached.conf并退出文本编辑器。

    7. 重新启动memcached。

      code language-bash
      service memcached restart
      
  3. 重新启动Web服务器。

    对于Apache,service apache2 restart

  4. 继续下一部分。

在安装Magento之前验证memcached是否有效

Adobe建议测试memcached,以确保它在安装Commerce之前正常工作。 执行此操作只需要几分钟的时间,并且以后可以简化故障排除。

验证Web服务器是否识别memcached

要验证Web服务器是否能够识别memcached:

  1. 在Web服务器的docroot中创建phpinfo.php文件:

    code language-php
    <?php
    // Show all information, defaults to INFO_ALL
    phpinfo();
    
  2. 转到Web浏览器中的该页面。 例如:

    code language-http
    http://192.0.2.1/phpinfo.php
    
  3. 确保memcached按如下方式显示:

    确认Web服务器可识别memcached

    验证您是否使用memcached版本3.0.5或更高版本。

    如果memcached未显示,请重新启动Web服务器并刷新浏览器页面。 如果仍然不显示,请验证是否已安装php-pecl-memcached扩展。

验证memcached是否可以缓存数据

此测试使用PHP脚本来验证memcached是否可以存储和检索缓存数据。

有关此测试的更多信息,请参阅如何在Ubuntu上安装和使用Memcache教程

在Web服务器的docroot中创建cache-test.php,内容如下:

$meminstance = new Memcached();

$meminstance->addServer("<memcached hostname or ip>", <memcached port>);

$result = $meminstance->get("test");

if ($result) {
    echo $result;
} else {
    echo "No matching key found. Refresh the browser to add it!";
    $meminstance->set("test", "Successfully retrieved the data!") or die("Could not save anything to memcached...");
}

其中<memcached hostname or ip>localhost127.0.0.1或memcache主机名或IP地址。 <memcached port>是侦听端口;默认情况下,11211

在Web浏览器中转到该页面。 例如

http://192.0.2.1/cache-test.php

第一次转到该页面时,会显示以下内容: No matching key found. Refresh the browser to add it!

刷新浏览器。 消息更改为Successfully retrieved the data!

最后,您可以使用Telnet查看memcache密钥:

telnet localhost <memcache port>

在提示下,输入

stats items

结果类似于以下内容:

STAT items:2:number 1
STAT items:2:age 106
STAT items:2:evicted 0
STAT items:2:evicted_nonzero 0
STAT items:2:evicted_time 0
STAT items:2:outofmemory 0
STAT items:2:tailrepairs 0
STAT items:2:reclaimed 0
STAT items:2:expired_unfetched 0
STAT items:2:evicted_unfetched 0

刷新内存缓存存储并退出Telnet:

flush_all
quit

有关Telnet测试的其他信息

recommendation-more-help
386822bd-e32c-40a8-81c2-ed90ad1e198c