介绍
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。
第1步:安装Redis
要在WordPress中使用Redis,需要安装两个软件包:redis-server
和php5-redis
。redis-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-service
和apache2
。
重新启动 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 的其他安全和管理指南: