如何配置Redis的缓存来加快WordPress的在Ubuntu 14.04

Redis是一个开源的键值存储能作为一个在内存存储和缓存操作。 Redis是可以用来作为它自己的数据库服务器,或搭配如MySQL关系数据库加快速度的数据结构的服务器。 在本教程中,Redis的将被配置为WordPress的缓存,以缓解用来呈现一个WordPress页面冗余且耗时的数据库查询。其结果是一个WordPress站点是快得多。

介绍

Redis是一个开源的键值存储,可以作为内存存储和缓存操作。 Redis是一个数据结构服务器,它可以作为一个数据库服务器独立使用,或者与一个关系数据库(如MySQL)配合使用,以加快速度,正如我们在本教程中所做的。

对于本教程,Redis将配置为WordPress的缓存,以减轻用于呈现WordPress页面的冗余和耗时的数据库查询。 结果是一个WordPress网站,速度更快,使用更少的数据库资源,并提供可调的持久缓存。 本指南适用于Ubuntu 14.04。

虽然每个网站是不同的,下面是一个示例基准的默认Wordpress安装主页与和没有Redis,按照本指南配置。 Chrome开发者工具用于测试浏览器缓存已禁用。

默认WordPress主页没有Redis:

804ms页面加载时间

使用Redis的默认WordPress主页:

449毫秒网页加载时间

注:此为WordPress Redis的缓存的实现依赖于一个良好的注释,但第三方的脚本。 该脚本托管在DigitalOcean的资产服务器上,但是是外部开发的。 如果你想自己实现WordPress的Redis缓存,你将需要根据这里提出的概念做一些更多的工作。

Redis vs. Memcached

Memcached也是一个流行的缓存选择。 然而,在这一点上,Redis做的一切Memcached可以做,具有更大的功能集。 这个溢出页有作为的概述或介绍新的Redis人的一般信息。

缓存如何工作?

第一次加载WordPress页面时,将在服务器上执行数据库查询。 Redis的回忆,或缓存 ,此查询。 因此,当另一个用户加载Wordpress页面时,结果是从Redis和内存提供的,而不需要查询数据库。

本指南中使用的Redis实现作为WordPress的持久对象缓存(无过期)。 对象缓存通过缓存加载WordPress页面所需的内存中的SQL查询来工作。

当页面加载时,生成的SQL查询结果由Redis从内存提供,因此查询不必击中数据库。 其结果是页面加载时间快得多,并且减少了服务器对数据库资源的影响。 如果查询在Redis中不可用,则数据库提供结果,Redis将结果添加到其缓存中。

如果在数据库中更新了一个值(例如,在WordPress中创建了一个新的帖子或页面),则该查询的Redis值会失效,以防止显示不良缓存的数据。

如果您在使用缓存的问题,Redis的缓存可以通过使用吹扫flushall命令从Redis的命令行:

redis-cli

一旦您看到提示,请键入:

flushall

序号: WordPress的对象缓存文档

先决条件

在开始本指南之前,您需要设置一个sudo用户并安装WordPress。

  • Ubuntu 14.04 Droplet(推荐1 GB或更高)
  • 添加sudo的用户
  • 安装WordPress。 该指南已经过测试与这些说明 ,虽然有安装WordPress的许多方面

第1步 - 安装Redis

为了使用Redis的与WordPress,两个包需要安装: redis-serverphp5-redis redis-server软件包提供了Redis的本身,而php5-redis软件包提供PHP应用程序像WordPress与Redis的沟通PHP扩展。

安装软件:

sudo apt-get install redis-server php5-redis

第2步 - 将Redis配置为缓存

Redis可以作为NoSQL数据库存储以及缓存操作。 对于本指南和用例,Redis将被配置为缓存。 为此,需要以下设置。

编辑文件/etc/redis/redis.conf并在底部加上下面几行:

sudo nano /etc/redis/redis.conf

在文件末尾添加以下行:

maxmemory 256mb
maxmemory-policy allkeys-lru

更改完成后,保存并关闭文件。

第3步 - 获取Redis缓存后端脚本

这WordPress的PHP脚本最初是由开发埃里克·曼 它是一个用于WordPress的Redis对象缓存后端。

下载object-cache.php脚本。 此下载是从DigitalOcean的资产服务器,但是这是一个第三方脚本 你应该阅读脚本中的注释,看看它是如何工作的。

下载PHP脚本:

wget https://assets.digitalocean.com/articles/wordpress_redis/object-cache.php

移动文件到/wp-content你的WordPress安装目录:

sudo mv object-cache.php /var/www/html/wp-content/

根据您的WordPress安装,您的位置可能不同。

第4步 - 在wp-config.php中启用缓存设置

接下来,编辑wp-config.php文件,添加一个缓存键Salt与您的网站的名称(或任何你想要的字符串)。

nano /var/www/html/wp-config.php

在末尾添加这一行* Authentication Unique Keys and Salts.部分:

define('WP_CACHE_KEY_SALT', 'example.com');

您可以使用您的域名或另一个字符串作为Salt。

注:对于托管多个WordPress站点的用户,每个站点只要能共享相同的Redis的安装,因为它有自己独特的缓存键Salt。

此外,添加以下行后WP_CACHE_KEY_SALT线来创建Redis的对象缓存插件持久缓存:

define('WP_CACHE', true);

在一起,你的文件应该看起来像这样:

 * Authentication Unique Keys and Salts.

. . .

define('NONCE_SALT',       'put your unique phrase here');

define('WP_CACHE_KEY_SALT', 'example.com');
define('WP_CACHE', true);

保存并关闭文件。

第5步 - 重新启动Redis和Apache

最后,重新启动redis-serviceapache2

重新启动Redis:

sudo service redis-server restart

重新启动Apache:

sudo service apache2 restart

重新启动php5-fpm ,如果你正在使用它; 这不是DigitalOcean的基本安装的一部分:

sudo service php5-fpm restart 

而已! 您的WordPress网站现在使用Redis缓存。 如果您检查您的网页加载速度和资源使用情况,您应该注意到改进。

使用redis-cli监视Redis

要监视Redis的,使用redis-cli命令,如下所示:

redis-cli monitor

运行此命令时,您将看到Redis服务缓存查询的实时输出。 如果您没有看到任何内容,请访问您的网站并重新加载网页。

以下是根据本指南使用Redis配置的WordPress网站的示例输出:

OK
1412273195.815838 "monitor"
1412273198.428472 "EXISTS" "example.comwp_:default:is_blog_installed"
1412273198.428650 "GET" "example.comwp_:default:is_blog_installed"
1412273198.432252 "EXISTS" "example.comwp_:options:notoptions"
1412273198.432443 "GET" "example.comwp_:options:notoptions"
1412273198.432626 "EXISTS" "example.comwp_:options:alloptions"
1412273198.432799 "GET" "example.comwp_:options:alloptions"
1412273198.433572 "EXISTS" "example.comwp_site-options:0:notoptions"
1412273198.433729 "EXISTS" "example.comwp_:options:notoptions"
1412273198.433876 "GET" "example.comwp_:options:notoptions"
1412273198.434018 "EXISTS" "example.comwp_:options:alloptions"
1412273198.434161 "GET" "example.comwp_:options:alloptions"
1412273198.434745 "EXISTS" "example.comwp_:options:notoptions"
1412273198.434921 "GET" "example.comwp_:options:notoptions"
1412273198.435058 "EXISTS" "example.comwp_:options:alloptions"
1412273198.435193 "GET" "example.comwp_:options:alloptions"
1412273198.435737 "EXISTS" "example.comwp_:options:notoptions"
1412273198.435885 "GET" "example.comwp_:options:notoptions"
1412273198.436022 "EXISTS" "example.comwp_:options:alloptions"
1412273198.436157 "GET" "example.comwp_:options:alloptions"
1412273198.438298 "EXISTS" "example.comwp_:options:notoptions"
1412273198.438418 "GET" "example.comwp_:options:notoptions"
1412273198.438598 "EXISTS" "example.comwp_:options:alloptions"
1412273198.438700 "GET" "example.comwp_:options:alloptions"
1412273198.439449 "EXISTS" "example.comwp_:options:notoptions"
1412273198.439560 "GET" "example.comwp_:options:notoptions"
1412273198.439746 "EXISTS" "example.comwp_:options:alloptions"
1412273198.439844 "GET" "example.comwp_:options:alloptions"
1412273198.440764 "EXISTS" "example.comwp_:options:notoptions"
1412273198.440868 "GET" "example.comwp_:options:notoptions"
1412273198.441035 "EXISTS" "example.comwp_:options:alloptions"
1412273198.441149 "GET" "example.comwp_:options:alloptions"
1412273198.441813 "EXISTS" "example.comwp_:options:notoptions"
1412273198.441913 "GET" "example.comwp_:options:notoptions"
1412273198.442023 "EXISTS" "example.comwp_:options:alloptions"
1412273198.442121 "GET" "example.comwp_:options:alloptions"
1412273198.442652 "EXISTS" "example.comwp_:options:notoptions"
1412273198.442773 "GET" "example.comwp_:options:notoptions"
1412273198.442874 "EXISTS" "example.comwp_:options:alloptions"
1412273198.442974 "GET" "example.comwp_:options:alloptions"

CTRL-C停止输出。

这对于查看Redis正在处理什么查询很有用。

结论

按照本指南,WordPress现在将被配置为使用Redis作为缓存在Ubuntu 14.04。

以下是一些可能感兴趣的WordPress的其他安全和管理指南:

如何在Ubuntu上在WordPress中配置安全更新和安装

如何使用WPScan来测试Wordpress中的漏洞插件和主题

如何使用WP-CLI从命令行管理您的WordPress站点