WordPress优化丨动静分离和Redis数据库缓存

前言

现在想想当初选择wordpress完全是一次偶然的机会,三丰云免费空间里自带的wp预装打开了新世界的大门,原来也可以这样~ 于是乎我从一个小白开始,划着不太灵敏的桨出发了,wp插件种类多简单简单易用,最主要是遇到问题百度或谷歌一下就可以很好的解决~当然用的时间长了他的缺点也就暴露了出来,比如上一个heito?主题虽然自定义强但是实在太臃肿了,而且打开速度非常之慢!而且数据库优化差导致一核一G的小vps根本带不动wp,cpu动不动百分百每个月要花额外的钱来租服务器来跑博客。

前几天WP专用机要到期了,我却不想再花额外的钱来专供一个博客,期间真的有考虑过酷炫的hexo,简洁的ty等其他博客构架,但是由于更换构架会导致太多的死链影像收录这最后一块木头和无法进行部署的虚拟空间一样都是我放弃的理由,不如从头倒戈来过,把WP好好地优化敲打鼓捣一下,脑海中列出了以下清单:

  1. 动静分离
  2. Redis数据库缓存

一、Redis数据库缓存

我们都知道WordPress采用的是动态数据库查询方式。翻译成白话,就是当用户访问文章或页面时,都会向数据库发送1个查询命令,数据库根据命令查询之后返回查询结果(这里不存在任何缓存技术)。很明显,如果访问量巨大,就会频繁的查询数据库,这会减慢网站速度。如果服务器性能不高,瞬间网站就崩溃了。

所以我们需要一种缓存技术,来减少数据库查询次数。而数据库缓存技术就是其中之一。Redis技术是其中的佼佼者。Redis是key-value分布式存储系统。简单的说,就是根据关键词值进行查询,这在很大程度上弥补了Memcached的短板。通过Redis进行数据库缓存,查询速度会更快,并发数更多。

一、安装Redis 可以在宝塔PHP拓展里安装Redis拓展插件,也可以SSH安装并配置,这里推荐宝塔

二、WordPress网站后台安装插件并开启Redis支持

1、使用Redis Object Cache

我们需要手工修改一下/wp-content目录下的object-cache.php文件:

$parameters = array(
            'scheme' => 'tcp',
            'host' => '127.0.0.1',
            'port' => 6379
        );


搜索并安装激活Redis Object Cache插件,该插件安装了一个php文件,可以帮助WordPress与Redis进行通信。导航到设置→Redis,然后单击“Enable Object Cache”并确保状态显示“Connected”。

不过我尝试了好多次都没有成功,于是就换了第二个插件

W3 Total Cache

这个方法比较简单,在后台搜索W3 Total Cache这个插件并安装激活,然后在 Performance → General Settings → Object Cache里面开启对象缓存,缓存方式选择Redis。

您可以通过W3TC轻松测试Redis是否正常工作。

要通过W3TC进行测试,请导航到Performance→Object Cache。单击“测试”按钮。如果您看到测试传递了消息,则Redis缓存工作正常。如果您不确定Redis的工作原理,我们建议您将设置保留为默认值。

开启Redis数据库缓存后打开速度几乎快了一倍。

二、动静分离

动静分离之前也试过,不过由于云存储方面的路径没配置好而放弃了,而且那个插件也有问题待完善,今天首先攻打的Gayhub+Jsdelivr的方法,未果程序包太大了不给加速,而github raw域名被墙而放弃,继续用又拍云,加上对的插件,动静分离的比较成功。

这里使用的插件是又拍云Uss插件,如果你使用其他的存储方案,可以在插件商店里搜索对应的插件,原理是数据库将原来路径blog.yourweb.com/wp_content/uploads重写为新的对象存储的地址路径,再根据相应的api可以实现本地和存储端同步的上传,而读取时候只走对象存储的CDN来实现加入目的。

对象存储与文件托管有很多种,我大概写了个思路,请忽略我拙劣的作图能力

补充:OSS和COS国内节点是需要备案的 海外节点可以不用备案
1.首推Github+jsDelivr

文件包小于50M或者可以折腾多个Github仓库分包的极力推荐这个办法,JSD在国内是网宿在加速并且免费,利用JSD加速Github的镜像,具体可以看这篇文章

2.其次推又拍云

具有一个备案域名后可以申请加入又拍云联盟并且悬挂标志LOGO后会获得一个61元的代金券,CDN和对象存储都可以用,支持HTTS也就是每月10G流量+5G空间一年的量,可以弹性调节,这月用超了下个月少用点或者多充几块钱就可以,本博客在用的就是又拍云的CDN和对象存储。

3.阿里云和腾讯云主机推荐OSS和COS

如果你使用的腾讯云或者阿里云服务器建议尝试一下自家的对象存储,同地域流量走内网不计流量并且这两家时不时有优惠,其中COS新用户免费6个月50G流量,OSS不清楚估计也有大厂的数据和稳定性放心。

补充:OSS和COS国内节点是需要备案的 海外节点可以不用备案

4.七牛云

七牛也有10G的免费空间和免费上传,只是外网流量需要计费和备案,具体也没有研究,只是免费版不支持https要注意。

网站动静分离后既减轻了源站的压力,也加速了网站,wp的优化可谓路漫漫其修远兮,以后会在针对WP进行深度开发以及自定义数据库结构以发掘出WP的全部优势。

发布者

王药酒

本站采用 知识共享署名4.0 国际许可协议进行许可 本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名