介绍
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。
第1步 - 安装Redis
为了使用Redis的与WordPress,两个包需要安装: redis-server
和php5-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/
根据您的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-service
和apache2
。
重新启动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中配置安全更新和安装