使用 Redis Object Cache Pro 插件加速WordPress的教程

图片[1] - 使用 Redis Object Cache Pro 插件加速WordPress的教程 - 聚问天空网

很多站长咨询,使用Redis加速WordPress效果好不好?Redis Object Cache Pro 插件如何配置?等等问题,这里希望通过本篇教程来回答大家关心的问题,以及帮助大家掌握Redis缓存插件的最佳使用方法。

目录

Redis 是什么?

Redis 是一个开源的使用 ANSI C 语言编写、遵守 BSD 协议、支持网络、可基于内存、分布式、可选持久性的键值对(Key-Value)存储数据库,并提供多种语言的 API。

通常被称为数据结构服务器,因为值(value)可以是字符串(String)、哈希(Hash)、列表(list)、集合(sets)和有序集合(sorted sets)等类型。

Redis 通过内存存储数据集,实现最佳的性能,再定期将数据集转存到磁盘来持久化存储数据。这一点与 Memcached 不同,Memcached 仅在内存中存储,当服务器重启数据会消失。

Redis 连续 5 年被评为最受欢迎的数据库。

WordPress 为什么要使用 Redis 缓存?

在 WordPress 中,所有的内容都存储在MySql数据库中,通过PHP程序调用后才能呈现给前端用户。在未做页面静态化缓存的情况下,每次访问页面,都会执行PHP读取MySql数据库。

例如:几乎所有WordPress网站的页面中都会用到的wp_title()函数,它是用来输出页面标题的,这个函数在执行过程中就会读取几次数据库,例如:文章标题、标题后缀、页码等。

一个复杂的页面,可能会读取上百条数据库中的值,这会造成页面加载速度缓慢。当访问量较大的时候,MySQL数据库会负载很高,而且性能低下。

所以我们经常强调,WordPress 非常需要将网页静态化缓存。这样一来大幅降低了PHP的使用,对于已静态化缓存完成的网页是不需要读取数据库的。

但这个方案不能解决所有网站的性能问题,因为动态网页是不适合静态化缓存的,例如:包含用户登录状态的网页、需要与用户实时交互的网页、WooCommerce商城等。

这些动态网页最佳的性能优化方式就是,将需要频繁读取的MySql数据库中的值缓存起来,不用每次都读取MySQL数据库,特别是在内存中缓存效果更佳,因为内存比磁盘的读取效率高很多。Redis 与 Memcached 都是通过内存缓存的最佳选择。

使用了静态化缓存的网页还需要 Redis 缓存吗?

这个问题有很多站长咨询,但它没有统一答案。因为静态化缓存的方式有很多种,如果是直接生成的静态URL,也就是说这个静态URL路径中的静态文件是真实存在的,且不经常更新,前端访问时基本不使用PHP,这种情况下再使用Redis 缓存几乎没效果,仅在首次生成静态文件的时候提高了效率。例如Rocket-Nginx等。

另外一种常见的静态化缓存,则是使用缓存优化插件,这类插件会将网页绝大部分内容都静态化,前端依然通过PHP执行后调入静态缓存。另外静态缓存内容需要定期刷新,那么当访客访问网页或搜索引擎爬网时,有可能静态缓存已过期需要重建缓存,这种情况下使用 Redis 会有助于提升速度。

Redis Object Cache Pro 是 WordPress 最佳的 Redis 缓存插件

如果网站需要用 Redis 缓存的话,推荐 Redis Object Cache Pro ,因为它是截止到目前最佳的 WordPress 对象缓存插件。

插件还有一个基础版本:Redis Object Cache,它是免费的,但缺少一些高级功能与特性。

Redis Object Cache Pro 使用教程

使用前的准备工作

首先要有安装了 Redis 服务端的服务器,可以与网站WEB服务器在同一台主机。或者购买已经安装配置好的 Redis 云数据库,腾讯云与阿里云等都有该类型产品。

安装 Redis

如何安装 Redis 取决于您的操作系统。请参阅下面最适合您需求的指南:

WEB服务器的环境要求

Redis Object Cache Pro 参数设置

插件在仪表板中没有任何配置选项,所有的参数配置均在wp-config.php配置文件中完成。它需要定义一个名称为’WP_REDIS_CONFIG’的常量,以下示例适用于大多数网站:

define('WP_REDIS_CONFIG', [
    'token' => '这里填写插件授权码',
    'host' => '127.0.0.1',
    'port' => 6379,
    'database' => 0, // 指定Redis数据库
    'maxttl' => 3600 * 24 * 7, // 7 天
    'timeout' => 1.0,
    'read_timeout' => 1.0,
    'split_alloptions' => true,
    'debug' => false,
]);

define('WP_REDIS_DISABLED', false);

在示例中可以看到,前面是参数后面是值。以下介绍一些常用的参数:

  • ‘host’ => 这里指定 Redis服务器地址,如果和WEB服务器在同一个主机,则设定为’127.0.0.1’即可。
  • ‘port’ => 这个是Redis的连接端口,默认为6379,如果在Redis中变更了默认端口,那么这里也要跟着变更。
  • ‘database’ => 这个参数是指定Redis数据库编号,如果有多个网站使用同一个Redis服务器,则需要为每个网站指定一个不同的数据库编号。默认为0,最多支持的编号数量取决于Redis服务器支持的数据库数量,一般默认支持16个。
  • ‘username’ => 指定连接的用户名,如Redis未设置登录验证,则无需该参数。用法示例:'username' => 'abc',
  • ‘password’ => 指定连接的密码,用法同上。
  • ‘prefix’ => 类似于 WP 的$table_prefix变量,它为所有数据库表名添加前缀。示例:'prefix' => 'mysitename',
  • ‘maxttl’ => 以秒为单位对所有新的缓存键强制执行“最大生存时间”。示例:'maxttl' => 3600 * 24, // 24小时
  • ‘timeout’ => 与 Redis 的连接超时时间,以秒为单位,支持小数。示例:'timeout' => 1.5,
  • ‘read_timeout’ => 读取超时时间,以秒为单位,支持小数,用法同上。
  • ‘retry_interval’ => 重试间隔,以毫秒为单位,支持整数。示例:'retry_interval' => 300,
  • ‘retries’ => 设置连接失败的重试次数,整数型。
  • ‘backoff’ => ‘default’, 使用重试配置时,将使用默认回退配置,该配置包括:去相关抖动算法、补偿计算的基数是500毫秒、补偿时间上限为750毫秒
  • ‘shared’ => true, 设定Redis 服务器/集群是共享的还是专用的。这会影响内存和键计数的显示方式。
  • ‘async_flush’ => true, 在Redis 4.0中引入了异步刷新,可以使用该async_flush选项启用。它允许在后台删除大量Key而不会阻塞服务器。
  • ‘prefetch’ => true, 启用预取后,请求的缓存键将基于每个请求进行存储,并在连续请求的早期按组进行批量加载。可预取键值列表在每次请求时都会更新,以保持其最新状态。

以上是一些常用参数,基本满足绝大部分网站需求,如需要了解全部参数,可以查阅详细文档

注意所有的参数设定行尾部都要加上英文逗号(,)。

如果在 Redis Object Cache Pro 插件的仪表板中能看到请求数据,说明配置成功:

图片[2] - 使用 Redis Object Cache Pro 插件加速WordPress的教程 - 聚问天空网
Redis Object Cache Pro 仪表板演示

获取 Redis Object Cache Pro 插件

© 版权声明
THE END
喜欢就支持一下吧
点赞15 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容