行业资讯

WordPress 如何正确配置对象缓存和页面缓存?

发布日期:2026-10-10 17:00:12

前言

很多人优化 WordPress 只开页面缓存,忽略对象缓存,导致数据库反复查询、CPU 负载偏高;也有人只装对象缓存插件,页面依然每次动态渲染,访问速度提升有限。页面缓存负责缓存整页 HTML,对象缓存负责缓存数据库查询结果,两者搭配才是 WP 性能优化的黄金组合。
WordPress 如何正确配置对象缓存和页面缓存?

一、分清:页面缓存 VS 对象缓存

  1. 页面缓存(Page Cache) 把渲染完成的整页 HTML 保存下来。访客访问时,直接返回静态 HTML,不用执行 PHP、查询数据库,提速效果最明显。 适合:匿名访客;不适合:登录用户、购物车、会员动态页面。

主流方案:LiteSpeed Cache、WP Rocket、Nginx Proxy Cache。

  1. 对象缓存(Object Cache) 缓存 WP 查询数据库得到的数据(文章、选项、分类、用户元数据)。每次 PHP 请求,优先读取 Redis/Memcached,减少 MySQL 压力。

主流方案:Redis(推荐,支持持久化),Memcached(简单但无持久化)。

一句话总结:页面缓存省掉 PHP 执行;对象缓存省掉数据库查询。

二、前置环境准备

1. 服务器端安装 Redis

LNMP / 宝塔环境执行:

# CentOS
yum install redis -y
systemctl enable redis
systemctl start redis

# Ubuntu/Debian
apt install redis-server -y
systemctl enable redis
systemctl start redis

安装 PHP Redis 扩展(PHP 版本要匹配),宝塔可直接在 PHP 扩展面板勾选 redis。

验证 Redis 连通:

redis-cli ping
# 返回 PONG 即为正常

安全建议:Redis 默认仅监听 127.0.0.1,不要对外开放公网端口,设置密码,避免被入侵。

三、WordPress 对象缓存配置(Redis)

方案 A:使用官方插件 Redis Object Cache(推荐)

  1. WP 后台 → 插件 → 安装 Redis Object Cache
  2. 进入插件设置页面,默认本地 Redis(127.0.0.1:6379),如果设置了 Redis 密码,填入认证密码。
  3. 点击【Enable Object Cache】启用。
  4. 验证:页面会显示连接成功、缓存命中 / 未命中统计。WordPress 如何正确配置对象缓存和页面缓存?

方案 B:手动配置 wp-config.php(不依赖插件)

编辑 wp-config.php,添加(放在/* That's all, stop editing! */前面):

define( 'WP_REDIS_HOST', '127.0.0.1' );
define( 'WP_REDIS_PORT', 6379 );
define( 'WP_REDIS_PASSWORD', '你的redis密码' );
define( 'WP_REDIS_DATABASE', 0 );
define( 'WP_CACHE_KEY_SALT', '你的站点唯一标识' );

上传 object-cache.php 到 wp-content/ 目录(插件包内自带)。

对象缓存调优要点

  • 不要使用同一个 Redis DB 给多个网站,分开 DB,防止缓存冲突
  • 缓存过期时间默认即可,不要设置永久缓存
  • 多站点 WP 必须配置 WP_CACHE_KEY_SALT

四、页面缓存配置(两种路线,二选一)

⚠️ 页面缓存不要同时开启多个页面缓存插件(例如同时开 LiteSpeed+WP Rocket,会冲突)

路线 1:LiteSpeed Cache(免费,Litespeed 服务器)

  1. 安装 LiteSpeed Cache 插件
  2. 【缓存】→ 开启页面缓存;缓存 TTL 设置 86400 秒(1 天)
  3. 排除页面:登录页、后台、购物车、会员个人中心
  4. 开启:浏览器缓存、CSS/JS 合并压缩、图片 WebP 转换
  5. 清理缓存:每次修改文章 / 主题后,一键清缓存WordPress 如何正确配置对象缓存和页面缓存?

路线 2:Nginx 原生页面缓存(不依赖 WP 插件,推荐高性能)

Nginx 配置示例,在 server 块内添加:

proxy_cache_path /tmp/nginx-wp-cache levels=1:2 keys_zone=wp_cache:100m max_size=1g inactive=86400s use_temp_path=off;

location / {
    proxy_pass http://127.0.0.1:9000;
    proxy_cache wp_cache;
    proxy_cache_valid 200 86400s;
    proxy_cache_key "$scheme$request_method$host$request_uri";
    
    # 登录用户、后台不缓存
    proxy_cache_bypass $cookie_wordpress_logged_in $request_uri ~* "/wp-admin/|/wp-login.php";
    proxy_no_cache $cookie_wordpress_logged_in $request_uri ~* "/wp-admin/|/wp-login.php";
}

优点:绕过 PHP,性能最强;缺点:需要懂 Nginx,清理缓存需要操作服务器。

页面缓存通用规则

  1. 登录用户、后台、wp-login、会员动态页面禁止缓存
  2. 评论区开启时,需要根据评论 cookie 绕过缓存
  3. 网站更新内容后,必须清除对应缓存,否则访客看不到新内容

五、两者一起使用的避坑重点

  1. ✅ 推荐组合: Redis 对象缓存 + LiteSpeed Cache 页面缓存 Redis 对象缓存 + Nginx 原生页面缓存
  2. ❌ 禁止: 多个页面缓存插件共存;Redis+Memcached 同时作为对象缓存。
  3. 常见坑
  • 缓存命中低:检查是否有动态 cookie、插件不断写入 session,导致页面缓存一直 bypass
  • 后台很慢:页面缓存不会加速后台,后台性能由对象缓存和数据库决定
  • 内容更新不生效:缓存 TTL 太长,没有自动清缓存钩子

六、缓存有效性检测方法

  1. 检测页面缓存:打开开发者工具,查看响应头 LiteSpeed 会出现 X-LiteSpeed-Cache: hit;Nginx 缓存返回 X-Proxy-Cache:HIT
  2. 检测对象缓存:Redis Object Cache 后台查看命中率,命中率 > 70% 属于良好
  3. 压力测试:ab /wrk 压测,观察 CPU、MySQL 负载变化

七、总结

页面缓存解决前端 HTML 访问速度,对象缓存减轻 MySQL 压力,两者属于互补组件。静态内容多的博客 / 资讯站,优先把页面缓存调优;文章多、查询量大、分类标签复杂的站点,Redis 对象缓存收益巨大。 上线缓存后持续监控缓存命中率,按需调整 TTL 和缓存排除规则,兼顾访问速度与内容实时性。

需要技术支持可以联系郑州沃之涛科技有限公司,给你放心、安心。


郑州沃之涛科技有限公司营业执照
WordPress SEO 合集插件软件著作权
WordPress 积木主题软件著作权