很多站长咨询,使用Redis加速WordPress效果好不好?Redis Object Cache Pro 插件如何配置?等等问题,这里希望通过本篇教程来回答大家关心的问题,以及帮助大家掌握Redis缓存插件的最佳使用方法。
这是专业插件,不建议新手安装使用,请详细阅读下方说明。
Zhanzhangb9sjJlBxBpLJbJcIRoi9rfszjmOqecMzQ1RB3K8jYQAOMkrCFDR
在开始配置之前,确保你已经完成以下准备工作:
如果你还没有完成上述步骤,请先完成这些基本操作,然后继续阅读。
首先,我们来看一下基本配置方案。这是一个适用于大多数站点的简单配置,可以在大多数情况下提供可观的性能改善。
define('WP_REDIS_CONFIG', [
'token' => 'your-license-token',
'host' => '127.0.0.1',
'port' => 6379,
'database' => 0, // 针对每个站点进行更改
'maxttl' => 3600 * 24 * 7, // 7 天
'timeout' => 1.0,
'read_timeout' => 1.0,
'prefetch' => true,
'split_alloptions' => true,
'strict' => true,
'debug' => false,
]);
define('WP_REDIS_DISABLED', getenv('WP_REDIS_DISABLED') ?: false);
让我们逐一解释这些参数的作用:
'token' => 'your-license-token':将 your-license-token 替换为你实际的许可证令牌'host' => '127.0.0.1':Redis服务器的主机地址。'port' => 6379:Redis服务器的端口号。'database' => 0:为每个站点更改数据库编号,以避免在多个站点上使用相同的数据库。'maxttl' => 3600 * 24 * 7:对象的最大过期时间,这里设置为7天。根据你的需求进行调整。'timeout' => 1.0 和 'read_timeout' => 1.0:连接Redis服务器的超时时间。'prefetch' => true:启用预取以提高性能。'split_alloptions' => true:alloptions 键是否应该存储为散列。如果你的站点有大量的选项(如 WooCommerce、Elementor 等),启用此选项可能会提高性能。'strict' => true:启用严格模式以确保 Redis 插件与 WordPress 的预期行为一致。'debug' => false:在生产环境中应将调试关闭,以避免暴露敏感信息。
最后,'WP_REDIS_DISABLED', false 确保Redis缓存是启用的。如果需要临时禁用Redis缓存,你可以将其设置为 true。
提示:配置代码需添加至 wp-config.php 文件中,并在 Object Cache Pro 插件中启用缓存即生效。
这是一个基本配置,适用于大多数 WordPress 站点。下面我们将看看更进一步的配置选项。
如果你希望更深入地定制你的Redis配置,可以考虑使用以下进阶配置方案。这个配置方案提供了更多参数,使你能够更精细地调整插件的行为。
define('WP_REDIS_CONFIG', [
'token' => 'your-license-token',
'host' => '127.0.0.1',
'port' => 6379,
'database' => 0, // 针对每个站点进行更改
'timeout' => 0.5,
'read_timeout' => 0.5,
'retry_interval' => 100,
'retries' => 3,
'backoff' => 'smart',
'compression' => 'zstd', // `zstd` 压缩更小,`lz4` 压缩更快
'serializer' => 'igbinary',
'async_flush' => true,
'split_alloptions' => true,
'prefetch' => true,
'strict' => true,
'debug' => false,
'save_commands' => false,
]);
define('WP_REDIS_DISABLED', getenv('WP_REDIS_DISABLED') ?: false);
这个配置方案包含了一系列高级参数,让我们逐一了解它们的作用:
'token' => 'your-license-token':将 your-license-token 替换为你实际的许可证令牌。'host' => '127.0.0.1':Redis服务器的主机地址。'port' => 6379:Redis服务器的端口号。'database' => 0:为每个站点更改数据库编号,以避免在多个站点上使用相同的数据库。'timeout' => 0.5 和 'read_timeout' => 0.5:连接Redis服务器的超时时间。'retry_interval' => 10 和 'retries' => 3:在连接失败时的重试设置。retry_interval 是重试间隔,单位毫秒;retries 是重试次数。'backoff' => 'smart':使用智能退避策略,更有效地重试连接。'compression' => 'zstd':选择压缩算法,如网站数据量较大,启用 zstd 可提供更高的压缩率。'serializer' => 'igbinary':选择序列化器,igbinary 通常比PHP默认的 serialize 更高效。'async_flush' => true:启用异步刷新以提高性能。'split_alloptions' => true:如果你的站点有大量的选项,启用此选项可能会提高性能。'prefetch' => true:启用预取以提高性能。'strict' => true:启用严格模式以确保 Redis 插件与 WordPress 的预期行为一致。'debug' => false:在生产环境中应将调试关闭,以避免暴露敏感信息。'save_commands' => false:将此选项设置为 false 可以避免在Redis中保存写入命令。
这个配置方案提供了更多的灵活性和控制权,但也需要更仔细的调整,确保符合你站点的特定需求。
Redis 是一个开源的使用 ANSI C 语言编写、遵守 BSD 协议、支持网络、可基于内存、分布式、可选持久性的键值对(Key-Value)存储数据库,并提供多种语言的 API。
通常被称为数据结构服务器,因为值(value)可以是字符串(String)、哈希(Hash)、列表(list)、集合(sets)和有序集合(sorted sets)等类型。
Redis 通过内存存储数据集,实现最佳的性能,再定期将数据集转存到磁盘来持久化存储数据。这一点与 Memcached 不同,Memcached 仅在内存中存储,当服务器重启数据会消失。
Redis 连续 5 年被评为最受欢迎的数据库。
在 WordPress 中,所有的内容都存储在MySql数据库中,通过PHP程序调用后才能呈现给前端用户。在未做页面静态化缓存的情况下,每次访问页面,都会执行PHP读取MySql数据库。
例如:几乎所有WordPress网站的页面中都会用到的wp_title()函数,它是用来输出页面标题的,这个函数在执行过程中就会读取几次数据库,例如:文章标题、标题后缀、页码等。
一个复杂的页面,可能会读取上百条数据库中的值,这会造成页面加载速度缓慢。当访问量较大的时候,MySQL数据库会负载很高,而且性能低下。
所以我们经常强调,WordPress 非常需要将网页静态化缓存。这样一来大幅降低了PHP的使用,对于已静态化缓存完成的网页是不需要读取数据库的。
但这个方案不能解决所有网站的性能问题,因为动态网页是不适合静态化缓存的,例如:包含用户登录状态的网页、需要与用户实时交互的网页、WooCommerce商城等。
这些动态网页最佳的性能优化方式就是,将需要频繁读取的MySql数据库中的值缓存起来,不用每次都读取MySQL数据库,特别是在内存中缓存效果更佳,因为内存比磁盘的读取效率高很多。Redis 与 Memcached 都是通过内存缓存的最佳选择。
这个问题有很多站长咨询,但它没有统一答案。因为静态化缓存的方式有很多种,如果是直接生成的静态URL,也就是说这个静态URL路径中的静态文件是真实存在的,且不经常更新,前端访问时基本不使用PHP,这种情况下再使用Redis 缓存几乎没效果,仅在首次生成静态文件的时候提高了效率。例如Rocket-Nginx等。
另外一种常见的静态化缓存,则是使用缓存优化插件,这类插件会将网页绝大部分内容都静态化,前端依然通过PHP执行后调入静态缓存。另外静态缓存内容需要定期刷新,那么当访客访问网页或搜索引擎爬网时,有可能静态缓存已过期需要重建缓存,这种情况下使用 Redis 会有助于提升速度。
如果网站需要用 Redis 缓存的话,推荐 Redis Object Cache Pro ,因为它是截止到目前最佳的 WordPress 对象缓存插件。
插件还有一个基础版本:Redis Object Cache,它是免费的,但缺少一些高级功能与特性。
首先要有安装了 Redis 服务端的服务器,可以与网站WEB服务器在同一台主机。或者购买已经安装配置好的 Redis 云数据库,腾讯云与阿里云等都有该类型产品。
如何安装 Redis 取决于您的操作系统。请参阅下面最适合您需求的指南:
插件在仪表板中没有任何配置选项,所有的参数配置均在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);
在示例中可以看到,前面是参数后面是值。以下介绍一些常用的参数:
'username' => 'abc',$table_prefix变量,它为所有数据库表名添加前缀。示例:'prefix' => 'mysitename','maxttl' => 3600 * 24, // 24小时'timeout' => 1.5,'retry_interval' => 300,以上是一些常用参数,基本满足绝大部分网站需求,如需要了解全部参数,可以查阅详细文档。
注意所有的参数设定行尾部都要加上英文逗号(,)。
如果在 Redis Object Cache Pro 插件的仪表板中能看到请求数据,说明配置成功