前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何在 Ubuntu 14.04 上配置Redis缓存以加速 WordPress

如何在 Ubuntu 14.04 上配置Redis缓存以加速 WordPress

原创
作者头像
小颖club
发布2022-04-11 13:51:16
5890
发布2022-04-11 13:51:16
举报
文章被收录于专栏:建站技术博客建站技术博客
如何在 Ubuntu 14.04 上配置 Redis 缓存以加速 WordPress
如何在 Ubuntu 14.04 上配置 Redis 缓存以加速 WordPress

介绍

Redis 是一个开源的键值存储,既可以作为内存存储也可以作为缓存运行。Redis 是一种数据结构服务器,可以单独用作数据库服务器,也可以与 MySQL 等关系数据库配对以加快速度,就像我们在本教程中所做的那样。

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

虽然每个站点都不同,但下面是一个默认 Wordpress 安装主页的示例基准测试,其中包含和不包含 Redis,如本指南中配置的那样。Chrome 开发人员工具用于在禁用浏览器缓存的情况下进行测试。

没有 Redis 的默认 WordPress 主页:

804ms 页面加载时间

带有 Redis 的默认 WordPress 主页:

449ms 页面加载时间

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

Redis 与 Memcached

Memcached 也是一种流行的缓存选择。然而,在这一点上,Redis 可以做 Memcached 可以做的所有事情,而且功能集要大得多。这个Stack Overflow 页面包含一些一般信息,作为对 Redis 新手的概述或介绍。

缓存是如何工作的?

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

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

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

如果在数据库中更新了某个值(例如,在 WordPress 中创建了一个新帖子或页面),则该查询的 Redis 值将失效,以防止出现错误的缓存数据。

如果遇到缓存问题,可以使用flushallRedis 命令行中的命令清除 Redis 缓存:

代码语言:javascript
复制
redis-cli

看到提示后,键入:

代码语言:javascript
复制
flushall

先决条件

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

  • Ubuntu 14.04 Droplet(推荐 1 GB 或更高版本)
  • 添加sudo 用户
  • 安装 WordPress。本指南已使用这些说明进行了测试,尽管安装 WordPress 的方法有很多

第 1 步 — 安装 Redis

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

安装软件:

代码语言:javascript
复制
sudo apt-get install redis-server php5-redis

第 2 步 — 将 Redis 配置为缓存

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

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

代码语言:javascript
复制
sudo nano /etc/redis/redis.conf

在文件末尾添加这些行:

代码语言:javascript
复制
maxmemory 256mb
maxmemory-policy allkeys-lru

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

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

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

下载object-cache.php脚本。此下载来自 DigitalOcean 的资产服务器,但这是第三方脚本。您应该阅读脚本中的注释以了解它是如何工作的。

下载 PHP 脚本:

代码语言:javascript
复制
wget https://assets.digitalocean.com/articles/wordpress_redis/object-cache.php

将文件移动到/wp-contentWordPress 安装目录:

代码语言:javascript
复制
sudo mv object-cache.php /var/www/html/wp-content/

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

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

接下来,编辑该wp-config.php文件以使用您的站点名称(或您想要的任何字符串)添加缓存键盐。

代码语言:javascript
复制
nano /var/www/html/wp-config.php

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

代码语言:javascript
复制
define('WP_CACHE_KEY_SALT', 'example.com');

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

注意:对于托管多个 WordPress 站点的用户,每个站点都可以共享相同的 Redis 安装,只要它有自己唯一的缓存键 salt。

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

代码语言:javascript
复制
define('WP_CACHE', true);

总之,您的文件应如下所示:

代码语言:javascript
复制
 * 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:

代码语言:javascript
复制
sudo service redis-server restart

重启阿帕奇:

代码语言:javascript
复制
sudo service apache2 restart

使用时重启php5-fpm;这不是 DigitalOcean 上基本安装的一部分:

代码语言:javascript
复制
sudo service php5-fpm restart 

就是这样!您的 WordPress 站点现在正在使用 Redis 缓存。如果您检查页面加载速度和资源使用情况,您应该会注意到改进。

使用 redis-cli 监控 Redis

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

代码语言:javascript
复制
redis-cli monitor

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

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

代码语言:javascript
复制
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 正在处理的查询很有用。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 介绍
    • Redis 与 Memcached
      • 缓存是如何工作的?
        • 先决条件
        • 第 1 步 — 安装 Redis
        • 第 2 步 — 将 Redis 配置为缓存
        • 第 3 步 — 获取 Redis 缓存后端脚本
        • 第 4 步 — 在 wp-config.php 中启用缓存设置
        • 第 5 步 — 重启 Redis 和 Apache
        • 使用 redis-cli 监控 Redis
        相关产品与服务
        云数据库 Redis
        腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
        http://www.vxiaotou.com