如何配置 Redis 缓存以提高 WordPress 在 Ubuntu 14.04 上的运行速度

介绍

Redis 是一个开源密钥价值存储,可以作为内存存储和缓存进行操作. Redis 是一个数据结构服务器,可以作为单独的数据库服务器使用,或与像 MySQL 这样的关系数据库结合使用,以加快工作速度,正如我们在本教程中所做的那样。

对于本教程,Redis将被配置为WordPress的缓存,以缓解用于渲染WordPress页面的冗余和耗时的数据库查询,结果是一个WordPress网站,它更快,使用更少的数据库资源,并提供可调节的持久缓存。

虽然每个网站都是不同的,但以下是默认的Wordpress安装主页的示例基准,有和没有Redis,根据本指南配置。

默认 WordPress 主页没有 Redis:

804ms 页面加载时间

使用 Redis 的默认 WordPress 主页:

449ms 页面加载时间

<$>[注] 注: WordPress 的 Redis 缓存的这种实现依赖于被评论过的但是第三方脚本. 该脚本托管在 DigitalOcean 的资产服务器上,但是外部开发的。

Redis 对抗 Memcached

Memcached 也是一个流行的缓存选项,但是,在这个时候,Redis 做到了 Memcached 所能做的一切,具有更大的功能集。 这个 Stack Overflow 页面 有一些一般信息,作为一个概述或介绍给 Redis 的新人。

Caching是如何工作的?

第一次加载WordPress页面时,在服务器上执行数据库查询。Redis记住,或 caches,这个查询.所以,当另一个用户加载Wordpress页面时,结果从Redis和从内存中提供,而无需查询数据库。

在本指南中使用的Redis实现功能作为WordPress的持久对象缓存(无期限)。

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

如果数据库中更新了值(例如,在 WordPress 中创建了一个新帖子或页面),则该查询的 Redis 值将被取消,以防止恶意缓存数据呈现。

如果您遇到缓存问题,则可以使用从 Redis 命令行中的flushall命令来清除 Redis 缓存:

1redis-cli

一旦你看到快递,类型:

1flushall

附加参考: WordPress 对象缓存文档

前提条件

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

  • Ubuntu 14.04 Droplet (1 GB 或更高推荐) * 添加一个 sudo 用户 * 安装 WordPress. 此指南已被测试与 这些说明,尽管有许多方法来安装 WordPress

第1步:安装Redis

要在WordPress中使用Redis,需要安装两个软件包:redis-serverphp5-redisredis-server软件包提供Redis本身,而php5-redis软件包为WordPress等PHP应用程序提供PHP扩展,以便与Redis进行通信。

安装软件:

1sudo apt-get install redis-server php5-redis

步骤 2 — 将 Redis 配置为缓存

Redis 既可以作为 NoSQL 数据库存储器,也可以作为缓存器。 对于本指南和使用案例,Redis 将被配置为缓存器。

编辑文件 /etc/redis/redis.conf 并在底部添加以下行:

1sudo nano /etc/redis/redis.conf

将这些行添加到文件的末尾:

1maxmemory 256mb
2maxmemory-policy allkeys-lru

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

步骤 3 – 获取 Redis Cache 后端脚本

这个 PHP 脚本为 WordPress 最初是由 Eric Mann开发的。 它是一个 Redis 对象缓存后端为 WordPress。

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

下载 PHP 脚本:

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

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

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

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

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

接下来,编辑)的缓存密钥盐。

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

* 身份验证独特密钥和盐部分的末尾添加此行:

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

您可以使用您的域名或其他字符串作为盐。

注意:对于托管多个WordPress网站的用户,只要每个网站有自己的独特缓存密钥盐,每个网站都可以共享相同的Redis安装。

此外,在WP_CACHE_KEY_SALT行后添加以下行,以使用 Redis 对象缓存插件创建持久缓存:

1define('WP_CACHE', true);

总的来说,你的文件应该是这样的:

1* Authentication Unique Keys and Salts.
2
3. . .
4
5define('NONCE_SALT',       'put your unique phrase here');
6
7define('WP_CACHE_KEY_SALT', 'example.com');
8define('WP_CACHE', true);

保存并关闭文件。

第5步:重新启动 Redis 和 Apache

最后,重新启动redis-serviceapache2

重新启动 Redis:

1sudo service redis-server restart

重新启动 Apache:

1sudo service apache2 restart

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

1sudo service php5-fpm restart

你的WordPress网站现在正在使用Redis缓存,如果你检查你的页面加载速度和资源使用,你应该注意到改进。

监视 Redis 与 redis-cli

要监控 Redis,请使用redis-cli命令如下:

1redis-cli monitor

当您运行此命令时,您将看到 Redis 提供缓存查询的实时输出. 如果您看不到任何内容,请访问您的网站并重新加载页面。

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

 1OK
 21412273195.815838 "monitor"
 31412273198.428472 "EXISTS" "example.comwp_:default:is_blog_installed"
 41412273198.428650 "GET" "example.comwp_:default:is_blog_installed"
 51412273198.432252 "EXISTS" "example.comwp_:options:notoptions"
 61412273198.432443 "GET" "example.comwp_:options:notoptions"
 71412273198.432626 "EXISTS" "example.comwp_:options:alloptions"
 81412273198.432799 "GET" "example.comwp_:options:alloptions"
 91412273198.433572 "EXISTS" "example.comwp_site-options:0:notoptions"
101412273198.433729 "EXISTS" "example.comwp_:options:notoptions"
111412273198.433876 "GET" "example.comwp_:options:notoptions"
121412273198.434018 "EXISTS" "example.comwp_:options:alloptions"
131412273198.434161 "GET" "example.comwp_:options:alloptions"
141412273198.434745 "EXISTS" "example.comwp_:options:notoptions"
151412273198.434921 "GET" "example.comwp_:options:notoptions"
161412273198.435058 "EXISTS" "example.comwp_:options:alloptions"
171412273198.435193 "GET" "example.comwp_:options:alloptions"
181412273198.435737 "EXISTS" "example.comwp_:options:notoptions"
191412273198.435885 "GET" "example.comwp_:options:notoptions"
201412273198.436022 "EXISTS" "example.comwp_:options:alloptions"
211412273198.436157 "GET" "example.comwp_:options:alloptions"
221412273198.438298 "EXISTS" "example.comwp_:options:notoptions"
231412273198.438418 "GET" "example.comwp_:options:notoptions"
241412273198.438598 "EXISTS" "example.comwp_:options:alloptions"
251412273198.438700 "GET" "example.comwp_:options:alloptions"
261412273198.439449 "EXISTS" "example.comwp_:options:notoptions"
271412273198.439560 "GET" "example.comwp_:options:notoptions"
281412273198.439746 "EXISTS" "example.comwp_:options:alloptions"
291412273198.439844 "GET" "example.comwp_:options:alloptions"
301412273198.440764 "EXISTS" "example.comwp_:options:notoptions"
311412273198.440868 "GET" "example.comwp_:options:notoptions"
321412273198.441035 "EXISTS" "example.comwp_:options:alloptions"
331412273198.441149 "GET" "example.comwp_:options:alloptions"
341412273198.441813 "EXISTS" "example.comwp_:options:notoptions"
351412273198.441913 "GET" "example.comwp_:options:notoptions"
361412273198.442023 "EXISTS" "example.comwp_:options:alloptions"
371412273198.442121 "GET" "example.comwp_:options:alloptions"
381412273198.442652 "EXISTS" "example.comwp_:options:notoptions"
391412273198.442773 "GET" "example.comwp_:options:notoptions"
401412273198.442874 "EXISTS" "example.comwp_:options:alloptions"
411412273198.442974 "GET" "example.comwp_:options:alloptions"

CTRL-C来停止输出。

这有助于查看 Redis 正在处理的查询。

结论

在遵循本指南后,WordPress 现在将被配置为在 Ubuntu 14.04 上使用 Redis 作为缓存。

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

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

如何在Wordpress中使用WPScan测试易受攻击的插件和主题

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

Published At
Categories with 技术
comments powered by Disqus