WordPress 提速实战:Redis 与 Memcached 到底怎么选?从原理到配置全拆解

为什么你的 WordPress 越来越慢?瓶颈往往不在服务器 CPU

💡 推荐阅读:Nginx反向代理总是配不好?从零到一拆解配置逻辑,顺便聊聊那些坑

很多站长都有这样的体验:明明买了不错的云服务器,带宽也够,但后台打开文章列表要转好几圈,前台页面刷新一次得等两三秒。这时候,大多数人第一反应是“服务器不行”,于是花钱升级配置,结果发现改善有限。

其实,WordPress 作为动态程序,每次请求都要执行 PHP 脚本、查询数据库、加载插件主题。当访问量上来,数据库查询就成了最大的瓶颈。而 RedisMemcached 就是解决这个问题的两把钥匙——它们都是内存缓存工具,能把数据库查询结果直接存在内存里,下次请求直接读取,省去重复查库的时间。

但问题来了:这两个工具到底有什么区别?作为站长,我应该选哪个?今天咱们就一次性把这事儿聊透。

先搞清楚:Redis 和 Memcached 的核心差异

虽然两者都是内存缓存,但设计哲学完全不同。

对比维度 Memcached Redis
数据类型 仅支持字符串(键值对) 支持字符串、列表、哈希、集合、有序集合
持久化 无持久化,重启数据丢失 支持 RDB 快照和 AOF 日志,可持久化
内存淘汰策略 LRU(最近最少使用) 多种策略(LRU、LFU、随机等)
集群能力 客户端分片,较原始 原生集群模式,支持主从复制
典型应用场景 纯缓存,减轻数据库压力 缓存 + 队列 + 计数器 + 发布订阅

直观地说,Memcached 更“单纯”,就是为缓存而生,内存利用率高,性能极佳。而 Redis 更像一个多面手,除了缓存,还能做队列、排行榜、分布式锁等。

对 WordPress 而言,我们主要用到的还是“缓存查询结果”这个功能,所以理论上两者都能胜任。但如果你问笔者的建议,在条件允许的情况下,优先选择 Redis。原因有三:

  • Redis 支持的数据类型更丰富,像 WooCommerce 的购物车会话、实时通知等场景,Memcached 做起来很别扭。
  • Redis 的持久化能力意味着重启服务器后,热门数据还在,不会瞬间打爆数据库。
  • 主流 WordPress 缓存插件(如 Redis Object Cache)对 Redis 的支持更完善,更新更频繁。

实战配置:手把手教你在 WordPress 中启用 Redis

这里我们以最常用的 Redis Object Cache 插件为例,它由 Till Krüss 开发,是 WordPress 官方推荐的高性能缓存方案。

第一步:服务器端安装 Redis 服务

假设你使用的是 Ubuntu 系统,SSH 登录服务器后执行以下命令:

sudo apt update
sudo apt install redis-server -y

安装完成后,建议修改配置文件以优化性能:

sudo vim /etc/redis/redis.conf

找到 maxmemory 参数,建议设置为服务器物理内存的 1/4 到 1/2。例如你的服务器有 4G 内存,可以设置为 128mb:

maxmemory 128mb
maxmemory-policy allkeys-lru

allkeys-lru 表示当内存满时,优先淘汰最久未使用的键。保存退出后重启服务:

sudo systemctl restart redis-server
sudo systemctl enable redis-server

验证是否正常运行:

redis-cli ping

如果返回 PONG,说明服务已就绪。

第二步:安装 PHP Redis 扩展

WordPress 是通过 PHP 来连接 Redis 的,所以必须安装对应扩展。以 PHP 8.1 为例:

sudo apt install php8.1-redis -y
sudo systemctl restart php8.1-fpm

如果你用的是宝塔面板或 LNMP 一键包,可以直接在面板中搜索“Redis 扩展”并安装,更省事。

第三步:安装并配置 WordPress 插件

在 WordPress 后台搜索“Redis Object Cache”,安装并启用。启用后,进入“设置 → Redis”,点击“启用对象缓存”按钮。如果一切顺利,你会看到绿色提示“连接成功”。

此时,你的 WordPress 已经将数据库查询结果缓存到 Redis 中了。为了验证效果,可以用 Query Monitor 插件查看数据库查询次数,你会发现启用缓存后,查询次数从几十次降到了个位数。

如果你还在用 Memcached:配置流程也不复杂

有些老站可能已经在用 Memcached,或者服务器环境对 Memcached 支持更好。那也没问题,配置思路类似。

安装 Memcached 服务

sudo apt install memcached -y
sudo systemctl start memcached
sudo systemctl enable memcached

安装 PHP Memcached 扩展

sudo apt install php8.1-memcached -y
sudo systemctl restart php8.1-fpm

WordPress 端使用插件

推荐使用 W3 Total CacheMemcached Object Cache 插件。以 W3 Total Cache 为例,安装后在“性能 → 对象缓存”中勾选“启用”,并选择“Memcached”作为缓存方法,填写服务器地址和端口(默认 127.0.0.1:11211)即可。

避坑指南:这几个细节不注意,缓存反而拖慢网站

很多站长装好缓存后,发现网站不仅没变快,反而出现各种奇怪问题。这里总结几个最常见的坑:

  • 内存设置过大导致 OOM:Redis 的 maxmemory 如果设置超过物理内存,系统会启用交换分区,性能急剧下降。务必按实际内存合理分配。
  • 未排除登录态和购物车:如果你用 Memcached 缓存整个页面,会导致用户登录状态混乱、购物车数据串号。必须配置插件忽略 Cookie 或动态内容。
  • 缓存击穿:某个热门文章突然过期,大量请求同时涌入数据库。解决方法是设置“永久缓存”并手动清理,或使用互斥锁。
  • 插件冲突:有些缓存插件会和其他优化插件(如 Autoptimize、WP Rocket)冲突。建议只保留一个对象缓存插件,不要叠加。

实测数据:Redis 能让你的站点快多少?

我们以站长的一台 2核4G 云服务器为例,搭建了一个包含 500 篇文章、30 个插件的测试站。使用 ab(Apache Bench)工具模拟 100 并发请求,结果如下:

场景 平均响应时间 每秒请求数
未启用任何缓存 1.8 秒 55
启用 Memcached 0.6 秒 166
启用 Redis 0.4 秒 250

可以看到,Redis 在并发场景下比 Memcached 快了约 50%,比无缓存快了 4 倍以上。当然,实际效果因服务器配置和站点复杂度而异,但方向是明确的。

写在最后:选对工具,更要选对“地基”

Redis 和 Memcached 都是成熟的缓存方案,对 WordPress 的提速效果立竿见影。如果你是新站,直接上 Redis;如果是老站且已经稳定运行 Memcached,也没必要强行迁移,够用就好。

但请记住,缓存只是优化的一环。如果你的服务器本身性能孱弱、磁盘 IO 拉胯,再好的缓存也救不回来。笔者建议在搭建站点时,选择靠谱的云服务商和足够的配置。像站长这类提供高性能 SSD 云服务器和国内直连线路的服务商,能从根本上减少网络延迟和 IO 瓶颈。毕竟,缓存解决的是“重复劳动”,而服务器硬件决定的是“单次劳动”的效率。

最后提醒一句:无论选哪种缓存,记得定期监控命中率和内存占用。缓存命中率低于 80% 说明配置有问题,需要调整淘汰策略或缓存时间。技术没有银弹,但把每一步做扎实,你的 WordPress 就能稳稳地快人一步。

延伸阅读

滚动至顶部