Redis缓存部署,加速WordPress
Redis 是一个内存键值数据库,常被用作缓存来减轻数据库压力。
为 WordPress 和 Typecho 部署 Redis 缓存,能显著减少页面生成时间,尤其适合动态内容较多的站点。
本文从零开始,带你完成安装、配置和验证,最终让站点响应速度得到可感知的提升。
适用场景与准备工作
如果你的 WordPress 或 Typecho 站点在流量增加后出现后台卡顿、页面打开缓慢,且服务器 CPU 或数据库负载偏高,那么引入 Redis 缓存是性价比较高的优化手段。
本教程适用于拥有服务器 root 权限或宝塔面板管理权限的用户。
开始前,请确认以下条件:
- 服务器已安装 PHP 7.4 或更高版本(WordPress 建议 7.4+,Typecho 建议 7.2+)。
- 拥有 SSH 登录权限,或可使用宝塔面板的文件管理和终端功能。
- 站点已正常运行,且近期有备份,避免操作失误导致数据丢失。
安装 Redis 服务与 PHP 扩展
Redis 缓存需要两部分:服务端和 PHP 客户端扩展。
根据你的环境选择一种安装方式。
方式一:使用宝塔面板(推荐新手)
- 登录宝塔面板,进入“软件商店”。
- 在搜索框输入“Redis”,找到 Redis 服务,点击“安装”。
- 安装完成后,切换到“PHP 扩展”标签,找到对应 PHP 版本,安装 redis 扩展。
- 重启 PHP 服务使扩展生效。
方式二:命令行安装(适用于 Ubuntu/Debian)
sudo apt update
sudo apt install redis-server php-redis -y
sudo systemctl enable redis-server
sudo systemctl start redis-server
对于 CentOS/RHEL:
sudo yum install epel-release -y
sudo yum install redis php-redis -y
sudo systemctl enable redis
sudo systemctl start redis
安装后,用 redis-cli ping 测试,返回 PONG 表示服务正常。
然后创建一个 PHP 文件,内容为 ,浏览器访问搜索 “redis”,能看到 Redis 模块即扩展安装成功。
php phpinfo(); ?
>
为 WordPress 配置 Redis 缓存
WordPress 需要借助对象缓存插件来连接 Redis。
推荐使用 Redis Object Cache 插件,也可用 W3 Total Cache 等,但前者更轻量。
- 在 WordPress 后台“插件”->“安装插件”中搜索 “Redis Object Cache”,安装并启用。
- 启用后,进入“设置”->“Redis”,点击“Enable Object Cache”。
- 如果连接失败,需要手动在
wp-config.php中添加配置:
define('WP_REDIS_HOST', '127.0.0.1');
define('WP_REDIS_PORT', 6379);
// 如果设置了密码,添加下面这行
define('WP_REDIS_PASSWORD', '你的密码');
保存后,回到插件页面点击“Enable Object Cache”,状态显示为“Connected”即成功。
为 Typecho 配置 Redis 缓存
Typecho 默认不支持 Redis,需要安装缓存插件,例如 “Typecho Redis 缓存” 或 “TpCache”。
以 TpCache 为例:
- 下载插件压缩包,上传到
/usr/themes/或/usr/plugins/目录(根据插件说明),解压。 - 登录 Typecho 后台,进入“控制台”->“插件”,启用 TpCache。
- 点击“设置”,选择缓存驱动为 Redis,填写主机
127.0.0.1,端口6379,如有密码一并填写。 - 保存设置。
部分插件可能需要手动修改 config.inc.php 添加 Redis 配置,具体以插件文档为准。
避坑指南与常见问题
Redis 连接被拒绝:检查 Redis 服务是否运行,防火墙是否放行 6379 端口(仅本机使用可只监听 127.0.0.1)。
缓存不生效:确认 PHP 扩展已加载,插件已启用,且 WordPress 的 wp-config.php 中无冲突的缓存定义。
内存占用过高:在 redis.conf 中设置 maxmemory 和 maxmemory-policy allkeys-lru,避免 Redis 占满内存。
多站点共用 Redis:不同站点应使用不同的数据库编号,在配置中指定 WP_REDIS_DATABASE 或插件中的数据库选项。
效果验证与性能对比
启用 Redis 缓存后,可以通过以下方式验证效果:
- 使用
redis-cli info stats查看keyspace_hits和keyspace_misses,命中率越高越好。 - 用浏览器开发者工具或 GTmetrix 测试页面加载时间,通常动态页面 TTFB 会明显下降。
- 观察服务器 CPU 和 MySQL 负载,应有可见降低。
如果效果不明显,可能是缓存未命中或规则不合理,需检查插件设置和过期时间。
常见疑问
Redis 和 Memcached 选哪个?
两者都可用于缓存,Redis 支持更丰富的数据类型和持久化,适合需要复杂操作的场景;Memcached 更简单,纯缓存场景也可选。WordPress 生态中 Redis 插件更成熟。
缓存会导致内容不更新吗?
合理设置过期时间或在发布/更新文章时自动清理缓存即可。多数插件会在内容变更时主动刷新相关缓存。
宝塔面板安装 Redis 后还需要命令行操作吗?
一般不需要,但若遇到权限或配置问题,仍需通过 SSH 调整 redis.conf。
Redis 服务突然停止怎么办?
检查系统日志 journalctl -u redis 或 /var/log/redis/redis-server.log,常见原因是内存不足或被 OOM Killer 终止,可调整 maxmemory 或增加 swap。
按照以上步骤操作后,你的 WordPress 或 Typecho 站点应该能感受到响应速度的提升。
如果遇到异常,优先回看避坑部分,并检查 Redis 服务状态和插件配置。