如果你还没有搞清楚 页面缓存 和 对象缓存 的区别,建议先看前一篇:
这一篇只做一件事:把 Redis 对象缓存 在 WordPress 里真正跑起来,并把多站隔离和常见报错一起讲清楚。
一、开始前先确认目标
Redis 在这里承担的是 对象缓存(Object Cache),核心作用是减少 WordPress 对数据库的重复查询。
它最适合下面这些场景:
- 同一台服务器上跑多个 WordPress 站点
- 后台、首页或高频查询页面明显变慢
- 你已经在做页面缓存,但数据库查询压力依然偏高
二、安装 Redis 服务与 PHP Redis 扩展
如果你现在跑的是 1Panel 环境,流程可以按下面来:
- 在 1Panel 应用商店里安装
Redis - 打开当前 WordPress 所使用的 PHP 运行环境
- 在 PHP 扩展里启用
redis - 保存后等待运行环境重建完成
这一步的目标很简单:
- 服务器里真的有 Redis 服务在运行
- 当前 PHP 环境真的能调用 Redis 扩展
如果少了任意一个,WordPress 插件都会报“Redis 不可访问”或“扩展不存在”。
三、安装 WordPress 插件
进入 WordPress 后台,安装并启用 Redis Object Cache 插件。
插件装好后先不要急着点各种优化按钮,先把连接参数写清楚,否则你看到的“可访问 / 不可访问”状态很容易反复横跳。
四、在 wp-config.php 里明确写入连接参数
建议直接在 wp-config.php 中写清楚 Redis 连接信息,而不是完全依赖插件自动探测。
define('WP_CACHE_KEY_SALT', 'example.com');define('WP_REDIS_SELECTIVE_FLUSH', true);
define('WP_REDIS_HOST', 'redis');define('WP_REDIS_PORT', 6379);define('WP_REDIS_DATABASE', 0);define('WP_REDIS_PASSWORD', '替换成你的 Redis 密码');这几个参数里,最值得解释的是下面两个:
WP_CACHE_KEY_SALT
这是给缓存键加前缀。
如果一台服务器上有多个 WordPress 站点,却共用一套 Redis,这个值几乎就是必填项。建议直接使用站点域名或一个稳定、唯一的站点标识。
WP_REDIS_SELECTIVE_FLUSH
把它设为 true 后,刷新缓存时会尽量只清理当前站点对应的缓存键,而不是把整台机器上共用 Redis 的缓存一把清空。
对于多站点环境,这个参数很有用。
五、1Panel / Docker 环境下的两个关键点
1. 为什么 WP_REDIS_HOST 常常写成 redis
在 1Panel 的 Docker 网络里,很多应用是通过 容器名或服务名 互相访问的。
因此只要你的 WordPress 运行环境和 Redis 在同一个可互通网络里,redis 这种主机名通常就能直接使用。
如果你在 1Panel 的“Redis 连接信息”里看到的是别的容器连接地址,也可以按面板显示的值来写,以实际网络环境为准。
2. 插件仍提示 “Redis 不可访问” 时看什么
如果你已经在 wp-config.php 里写了参数,插件仍然报错,优先检查下面几项:
- Redis 容器是否真的在运行
- PHP Redis 扩展是否已经启用
WP_REDIS_PASSWORD是否与面板展示的密码一致WP_REDIS_HOST是否与容器网络中的实际连接地址一致
如果这些都对,但插件还是无法连通,再去检查 wp-content/object-cache.php 里最终生成的连接参数是否与 wp-config.php 一致。
重点看:
- 主机地址是不是还停留在错误值
- 密码有没有被正确带进去
如果插件生成的参数不对,修正后再刷新后台状态页确认。
六、多站点环境一定要做缓存隔离
早期我在多站点环境里踩过的一个坑,就是多个站点都在用 Redis,但没有做清晰的缓存键隔离。
这会带来两个问题:
- 某个站点刷新缓存时,可能把别的站点的缓存也一起清掉
- 站点之间的缓存命中和污染会变得不可控
因此,无论你是旧宝塔环境还是现在的 1Panel 环境,只要是 多站共用 Redis,都建议至少做好这两件事:
WP_CACHE_KEY_SALT使用唯一前缀WP_REDIS_SELECTIVE_FLUSH设为true
七、怎么确认对象缓存已经真的生效
你可以从三个角度确认:
1. 看插件状态页
WordPress 后台的 Redis Object Cache 页面里,会直接显示是否已连接、是否已启用对象缓存。
2. 看 Redis 监控或面板命中情况
如果你刷新几次首页、文章页和后台页面后,Redis 侧出现了命中与读写活动,说明对象缓存已经在工作。
3. 看站点的实际体感
对象缓存不是银弹,但在数据库查询较多的 WordPress 场景里,后台和首页通常会更稳一些,尤其是在小规格 VPS 上。
小结
这篇实操可以压缩成一句话:
- 先把 Redis 服务和 PHP Redis 扩展装好
- 再用
wp-config.php明确写连接参数 - 多站点一定做缓存键隔离
- 如果插件还报错,就检查最终生成的连接参数
这样配置下来,Redis 对象缓存基本就能在 WordPress 里稳定跑起来。