雨云WordPress性能优化:Redis对象缓存+CDN加速组合拳

Redis 缓存数据库查询 + CDN 扛静态资源,把 WordPress 的 TTFB 压到 200ms 内
发布于 更新于
8

WordPress 刚部署在雨云云服务器上时响应挺快,文章多了、插件多了就开始卡。根因基本就两类:一是每次页面请求都要查一遍数据库,二是图片、JS、CSS 全走源站带宽。解决思路很直接——用 Redis 把数据库查询结果缓存起来,用 CDN 把静态资源甩出去。下面按能直接照做的步骤来。

一、先定位慢在哪

别急着上缓存。先装个 Query Monitor 插件看页面跑了多少条 SQL、耗时多少;再用浏览器开发者工具看 TTFB(首字节时间)和静态资源加载。TTFB 高说明是后端/数据库问题,静态资源加载慢说明是带宽/CDN 问题。两件事分开治。

二、Redis 对象缓存怎么接

Redis 是一个内存键值库,WordPress 把「查询数据库得到的结果」存进内存,下次同样的请求直接读内存,跳过 SQL。雨云的云服务器内存普遍够用,开一个 Redis 实例几乎不占多少资源。安装:

apt install redis-server
systemctl enable redis-server
systemctl start redis-server

默认监听 127.0.0.1:6379,本地调用延迟在毫秒级。

三、WP 端配置

装 Redis Object Cache 插件,在 wp-config.php 里加:

define('WP_REDIS_HOST', '127.0.0.1');
define('WP_REDIS_PORT', 6379);
define('WP_CACHE_KEY_SALT', 'yuyun_site_');

多站点或一台机跑多个 WP 时,WP_CACHE_KEY_SALT 必须不同,否则缓存串库。插件启用后状态页显示「Connected」就成功了。注意它缓存的是对象(查询结果),不是整页,所以动态内容(登录态、购物车)不会出错。

四、CDN 加速静态资源

对象缓存管后端,静态文件(图片、字体、JS、CSS)得靠 CDN。把 wp-content/uploads 下的资源推到 CDN 节点,用户就近取,源站带宽压力骤降。雨云自带的 CDN 加速(标签 2022)能直接绑定域名做静态分发,国内节点回源走内网也省流量。配置要点:

  • CDN 源站填雨云云服务器公网 IP 或内网回源地址;
  • 缓存规则把图片/JS/CSS 设长缓存(30 天),HTML 不缓存;
  • 开启 HTTPS 回源,避免混合内容告警。

五、数据库持久连接与查询优化

Redis 接上后,剩下的慢查询靠两招:一是减少 MySQL 握手开销、复用连接;二是给高频查询字段加索引,删掉用不上的插件——每个插件都可能往 wp_options 写数据,拖慢 autoload。定期 OPTIMIZE TABLE 也有效。

六、对象缓存 + CDN 的组合顺序

建议先上 Redis(改动小、见效快),确认 TTFB 下降后再接 CDN(要改域名解析、配缓存规则)。两者叠加,典型博客首页 TTFB 能从 800ms 压到 200ms 以内,静态资源走 CDN 后首屏时间再砍一半。

七、雨云上的实操建议

雨云云服务器新购用优惠码 admin01 走专属入口 https://www.jiyueip.com/link/5617 能拿五折,起步选 2 核 2G 就够跑 WP + Redis。内存吃紧时优先保 Redis,而不是盲目加 CPU。对象存储(见本站另一篇雨云 OSS 实战)还能把 uploads 直接存远端,进一步给系统盘减负。

八、常见翻车点

  • Redis 没设密码且监听公网,被扫到拿去挖矿——务必绑 127.0.0.1 或加 requirepass;
  • CDN 把 HTML 也缓存了,更新文章前台不刷新——HTML 排除缓存;
  • 多站点共用 Redis 没改 salt,缓存互相覆盖;
  • 只上 CDN 不上对象缓存,数据库还是被打满。

常见问题

关于雨云 WordPress 优化的高频疑问,下面一并解答。

常见问题(FAQ)

雨云上 WordPress 卡主要怪什么?
主要两类:数据库查询频繁(每次请求都跑 SQL)和静态资源走源站带宽。前者用 Redis 对象缓存解决,后者用 CDN 解决,对症才有效。
Redis 对象缓存和整页缓存(如 WP Super Cache)有什么区别?
Redis 缓存的是数据库查询结果,动态内容(登录态、购物车)不会出错;整页缓存存的是渲染好的 HTML,速度更快但登录态要单独例外处理。两者可以并存。
雨云 CDN 回源走内网免费吗?
同节点内网回源免费,跨公网回源才计费。建议 CDN 源站和雨云云服务器放在同一节点,回源走内网最省。
2G 内存的雨云服务器跑 WP+Redis 够吗?
纯博客场景够用。把 Redis 的 maxmemory 限制在 128~256M 左右即可,别让它吃满系统内存,剩下的留给 PHP 和 MySQL。

本文由作者原创/授权发布于极跃圈(jiyueip.com)未经许可,禁止转载。题图来自Unsplash,基于CC0协议。

声明:极跃圈(JIYUEIP.com)内网友所发表的所有内容及言论仅代表其本人,并不反映任何极跃圈(JIYUEIP.com)之意见及观点。

0 讨论
热门最新
总结
暂无总结
0 / 600