启用Redis对象缓存可显著降低WordPress数据库负载。需依次安装配置Redis服务、启用PHP的redis扩展、部署Redis Object Cache插件,并通过测试验证缓存命中与数据库压力下降。

如果您在宝塔面板中运行 WordPress 或其他依赖数据库的 PHP 应用,频繁的查询会导致数据库负载升高。启用高性能 Object Cache 可将常用数据缓存至内存,显著降低数据库访问频次。以下是具体配置步骤:
一、安装并启用 Redis 服务
Redis 是一种内存键值存储,适合作为对象缓存后端,具备高吞吐与低延迟特性。宝塔面板可快速部署并管理 Redis 实例。
1、登录宝塔面板,在左侧菜单点击【软件商店】,搜索“Redis”,选择对应版本(推荐 Redis 7.x)并点击【安装】。
2、安装完成后,返回【软件商店】→【已安装】→ 找到 Redis → 点击【设置】→ 切换至【配置修改】选项卡,确认 bind 地址为 127.0.0.1,端口为 6379,maxmemory 建议设为 256mb 或 512mb(根据服务器内存调整)。
3、在【服务】选项卡中点击【启动】,并勾选【开机自启】。
4、返回【安全】页面,确认防火墙未放行 Redis 端口(因仅本地 PHP 进程访问,无需开放公网端口)。
二、配置 PHP 扩展支持 Redis
PHP 需加载 redis 扩展,才能通过代码连接 Redis 服务。宝塔默认部分 PHP 版本已内置该扩展,需验证并启用。
1、在宝塔面板中进入【软件商店】→【已安装】→ 找到当前网站使用的 PHP 版本 → 点击【设置】。
2、切换至【安装扩展】选项卡,查找“redis”,若状态为“未安装”则点击【安装】;若已显示“已安装”,请检查右侧是否已勾选启用。
3、安装或启用后,点击【重载配置】按钮,确保 PHP-FPM 重新加载扩展。
4、创建临时探针文件(如 info.php),写入 <?php phpinfo(); ?>,访问该文件并搜索“redis”,确认 Extension 提示为 enabled 且 Version 可见,表示扩展加载成功。
三、部署 WordPress 的 Redis Object Cache 插件
该插件直接对接 WordPress 的 WP_Object_Cache 接口,无需修改核心代码,即可将 wp_cache_set/get 等调用转向 Redis。
1、登录 WordPress 后台,进入【插件】→【安装插件】,搜索“Redis Object Cache”,选择由 “Rafael Bernardi” 开发的官方版本(插件名全称为“Redis Object Cache”),点击【现在安装】并【启用】。
2、启用后,进入【设置】→【Redis】,页面将自动检测连接。若显示“Connected to Redis”,说明 PHP 已成功通信。
3、在插件设置页,确认“Object Cache”开关为开启状态,并勾选“Enable Object Cache”和“Automatic Cache Flush on Update”(可选)。
4、点击【Save Changes】,插件将写入 wp-config.php 中的定义常量,务必确认 define('WP_REDIS_HOST', '127.0.0.1') 和 define('WP_REDIS_PORT', 6379) 已正确写入。
四、使用 Memcached 替代方案(备选)
Memcached 同样支持多线程内存缓存,适用于不需持久化与复杂数据结构的场景,部分老旧环境兼容性更佳。
1、在宝塔【软件商店】中搜索“Memcached”,安装对应版本(建议 1.6.x),安装完毕后点击【启动】并设为开机自启。
2、进入当前 PHP 版本设置 → 【安装扩展】→ 安装“memcached”扩展(注意非“memcache”,前者为新版推荐扩展)。
3、重启 PHP-FPM,然后在 WordPress 中安装插件“Memcached Is Your Friend”,激活后其会自动探测并启用 Memcached。
4、检查 wp-content 目录下是否存在 object-cache.php 文件,且内容包含 memcached 连接逻辑,若存在且无 PHP 报错,则缓存已生效。
五、验证缓存命中与数据库压力下降
启用 Object Cache 后,需确认其实际生效,而非仅界面显示“已启用”。可通过日志与监控指标交叉验证。
1、在 WordPress 根目录新建 debug-cache.php,写入:
<?php<br>
if ( function_exists( 'wp_cache_get' ) ) {<br>
wp_cache_set( 'test_key', 'test_value', 'test_group', 300 );<br>
$val = wp_cache_get( 'test_key', 'test_group' );<br>
echo $val === 'test_value' ? 'Cache working' : 'Cache failed';<br>
} else { echo 'No object cache'; }<br>
?>访问该文件,输出“Cache working”即表示接口调用正常。
2、登录宝塔【数据库】→ 选择对应 MySQL 数据库 → 点击【性能状态】,观察“Questions”每秒增量。在相同访问压力下,启用缓存后该数值应明显低于启用前。
3、进入 Redis 设置页(【软件商店】→ Redis → 【终端】),执行 redis-cli info | grep "keyspace_hits\|keyspace_misses",若 hits 远高于 misses,说明缓存命中率处于健康水平。











