对于有用户登录和用户交互需求的wordpress站点,启用动态缓存是提高性能的必备手段。黄老师选择了Redis来做动态缓存,要用到的插件是Redis Object Cache。由于我的服务器上有多个wordpress站点,如果要都启用REDIS,还需要一些特别的配置。我来给大家分享一下WordPress如何开启REDIS动态缓存。
首先,我们在wordpress页面底部加入一句查询统计的代码。这样可以看到页面加载时执行的时间和查询次数。直观的看到开启动态缓存的前后对比。打开你主题里的footer.php 在合适的位置加入下面这句:
<?php timer_stop(4) ?>秒内查询了<?php echo get_num_queries(); ?>次数据库
如果你有安装其他缓存插件,请先停用,或者关闭已登录用户的缓存。比如我的用的WP Super Cache。在高级设置里开启了【不要为已知用户缓存】的设置。
刷新前台页面,就可以看到页面的数据查询时间和次数了。你可以记录一下你的首页、文章页的数据,方便一会儿做对比。
然后服务器上安装Redis,黄老师用的宝塔面板,可以一键安装。或者百度redis安装方法,这么不再赘述。
接下来在wordpress后台安装Redis Object Cache插件。后台搜索安装就有了。安装启用后,默认是未开启状态。进入设置页面,点击Enable Object Cache就可以启用了。
如果你服务器上只有一个wordpress启用redis,那么就可以了。但如果你和黄老师一样,想给在同一台服务器上的多个wordpress启用Redis缓存,就要多一个操作了。如果不设置,缓存会错乱,打开A网站会进入B网站。
打开根目录下的Wp-config.php文件,加入以下两句:
define( 'WP_CACHE_KEY_SALT', 'kouer_' );
define( 'WP_REDIS_SELECTIVE_FLUSH', true );
第一句是自定义缓存的前缀,多个wordpress设置成不一样的即可。第二句是在设置页面刷新缓存时,是否只刷新当前站点的缓存,根据自己的需要设置。如果不设置或设置为false,会刷新所有站点的缓存。
上图是开启Redis后,数据库的每秒执行操作数的监控。数量明显下降。然后再看看你页面的查询时间和数量。是不是快了很多?口耳相传开启REDIS前是0.15秒左右,开启后达到0.11秒左右。你的加载时间提升了多少,有我快吗?