WordPress Redis 配置指南:Object Cache Pro 插件详解

本教程将深入探讨如何通过配置 Object Cache Pro 插件与 Redis 来优化 WordPress 站点性能。Object Cache Pro 是一个功能强大的插件,利用 Redis 作为对象缓存后端,可以显著提升网站的响应速度和整体性能。

准备工作

在开始配置之前,确保你已经完成以下准备工作:

  1. 确认你的服务器上已成功安装和配置 Redis 。
  2. 安装并启用 Object Cache Pro 插件,该插件原名为:Redis Object Cache Pro,是WordPress 官方推荐的 Redis 缓存插件之专业版。

如果你还没有完成上述步骤,请先完成这些基本操作,然后继续阅读。

配置方案一:基本配置

首先,我们来看一下基本配置方案。这是一个适用于大多数站点的简单配置,可以在大多数情况下提供可观的性能改善。

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 替换为你实际的许可证令牌,如在站长帮下载的版本,可使用 Zhanzhangb9sjJlBxBpLJbJcIRoi9rfszjmOqecMzQ1RB3K8jYQAOMkrCFDR 
  • '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' => truealloptions 键是否应该存储为散列。如果你的站点有大量的选项(如 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 替换为你实际的许可证令牌。如在站长帮下载的版本,可使用 ZRAK3EiGNFop#gJq7tU55M%cb#%ZUy8Q#TyT$oXA&H9joowem7TbzdYQSewgy。
  • '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中保存写入命令。

这个配置方案提供了更多的灵活性和控制权,但也需要更仔细的调整,确保符合你站点的特定需求。

Object Cache Pro 插件统计视图

在插件的设置界面中,将展示与缓存相关的各项数据图表,示例如下:

Object Cache Pro 视图示例

这些图表提供了关于 WordPress 站点使用 Redis 缓存的性能和行为的详细信息。下面是各项指标的具体含义:

  1. “Requests”(请求):
  • Cached Hits: 显示已经在内存中缓存的请求数量。
  • Uncached Hits: 显示未在内存中缓存的请求数量。
  • Misses: 显示未被缓存的请求数量。
  • Hits-to-Misses Ratio: 显示在内存中缓存的请求与未被缓存的请求之间的比率。这个比率越高,表示缓存的效果越好。
  1. “Redis:Requests”(Redis请求):
  • Successful Key Lookups: 显示成功的Redis键查找次数。
  • Failed Key Lookups: 显示失败的Redis键查找次数。
  • Hits-to-Misses Ratio: 显示Redis键查找的命中与未命中之间的比率。高比率通常表示Redis缓存效果良好。
  1. “Commands”(命令):
  • Cache Reads: 显示从缓存读取的次数。
  • Datastore Writes: 显示写入数据存储的次数。这表示缓存过期或需要更新。
  • Datastore Reads: 显示从数据存储读取的次数。
  • Cache Writes: 显示写入缓存的次数。
  1. “Response Times”(响应时间):
  • WordPress Render Time: 显示 WordPress 渲染请求所需的平均时间(毫秒)。
  • Datastore Response Time: 显示等待数据存储响应的平均时间(毫秒)。
  1. “Redis:Memory”(Redis 内存):
  • Memory Allocated: 显示Redis当前分配的内存量。
  • Used Memory: 显示已使用的 Redis 内存量。
  • Memory Ratio: 显示Redis分配内存与可分配最大内存之间的比率。这可用于监视Redis内存使用情况。
  1. “Datastore Command Time”(数据存储命令时间):
  • Average Time Waiting for Datastore Response: 显示等待数据存储响应的平均时间(毫秒)。这有助于了解数据存储的性能。
  1. “Redis:Throughput”(Redis 吞吐量):
  • Commands Processed per Second: 显示Redis处理的命令数量。高吞吐量通常表示Redis服务器正在高效地处理请求。

这些图表的监视可以帮助你更好地了解 WordPress 站点与 Redis 缓存的交互,找到性能瓶颈并进行优化。

配置最佳实践

对比两种配置方案的优缺点,我们来制定一些最佳实践,以帮助你更好地选择和调整你的配置:

  1. 灵活性与便捷性的平衡: 如果你的站点是一个简单的博客或小型网站,基本配置方案可能已经足够。对于大型和复杂的站点,进阶配置方案提供了更多的调整选项,但需要更谨慎的配置。
  2. 与静态缓存插件相互配合:如果网站同时开了 Redis 缓存与页面静态缓存,这是最优的搭配方案。推荐搭配的页面静态缓存插件有:WP Rocket、WP Fastest Cache Premium、WP-Optimize Premium 等。
  3. 性能监控与调整: 无论选择哪种配置,都建议定期监控你的 WordPress 站点和 Redis 服务器的性能。利用工具如 New Relic、Redis 的监控工具等,来及时发现潜在的性能问题。
  4. 定期备份与恢复测试: 在应用配置更改之前,确保对你的 WordPress 站点进行全面备份,以确保在需要时可以成功还原站点。
  5. 避免过度调试: 在生产环境中,应将调试设置关闭,以避免在错误发生时暴露敏感信息。调试应仅在开发环境中启用。

故障排除

在使用 Object Cache Pro 插件与 Redis 时,可能会遇到一些常见的问题。以下是一些建议的故障排除步骤:

  1. 检查 Redis 连接: 确保 Redis 服务器已正确启动和运行,并且与 WordPress 站点能够建立连接。
  2. 查看日志文件: Object Cache Pro 插件和 Redis 都能生成日志文件。查看这些日志文件,以获取更多关于问题的信息。
  3. 版本兼容性: 确保使用的 Object Cache Pro 插件和 Redis 服务器版本兼容。有时,更新插件或 Redis 版本可能解决问题。
  4. 检查配置参数: 仔细检查你的配置文件,确保没有拼写错误或参数值的问题。

总结

通过本指南,你应该对如何配置 Object Cache Pro 插件与 Redis 有了更深入的了解。选择合适的配置方案取决于你站点的规模和性能需求,同时也需要根据实际情况进行定期调整。

鼓励你在实际应用中进行实验,并利用监控工具不断优化你的配置,以确保你的 WordPress 站点在性能方面达到最佳状态。

阅读剩余
THE END