Dragon
  • 本博客商城免登录支付购买BUG已经修复恢复正常,谢谢您的惠顾!
  • 注册、登陆后即可全站无广告畅快浏览本博客了!
  • 本博客已开启支持百度AI智能内容自动审核机制!
明月登楼明月登楼  2021-01-17 19:09 明月登楼的博客 隐藏边栏 |   20 条评论  1,523 
文章评分 5 次,平均分 5.0
导语: 今天给大家推荐的这个缓存加速方案依旧是属于“救急”应对方案,建议在网站流量突增或者服务器负载紧张的时候“救急”一下最好,长期作为加速优化方案需要服务器内存比较富余的情况下可以考虑,相对于那种大型缓存插件来说这种方式比较简单、安全、高效一些,但跟 CDN 服务来说加速效果基本还是微不足道的。

明月很久没有给大家推荐和聊过 WordPress 本地缓存加速优化的话题了,今天给大家推荐一个 WordPress 本地缓存加速方案:Memcached+Batcache,这是一个以 HTML 页面为对象缓存的 WordPress 加速优化方案,简单点儿说就是将 HTML 页面作为一种 Object Cache 放到服务器内存里 Memcached 中以供后来的访问者直接调用来加快访问速度。就明月自己的实际体验测试来看这种缓存式加速算是目前比较问稳定高效的方式了。

首先这种方式的缓存命中率非常的高,几乎可以保持在 90%以上:

可以说至少从效率上来说是非常不错的表现了。理论上来说只要你的服务器内存充足或者富裕,这种方式绝对值得一试,对于减少 WordPress 这类动态博客系统的数据库查询次数效果还是很明显的,了解 WordPress 的站长们都清楚,数据库查询永远是 WordPress 最大的性能瓶颈!

其次,就是这种方案的部署搭建很简单,服务器端只需要安装好 Memcached 即可(可参考【WP Super Cache 和 W3 Total Cache 缓存插件使用 memcached 提升性能】一文中的教程安装哦!), WordPress 层面只需要一个Batcache的插件就可以了,在 WordPress 后台只需要启用这个插件即可,连设置界面都不用的哦!

需要强调的是:1、这个加速优化方式需要在 wp-config.php 里添加如下所示代码:
 
  1. define('WP_CACHE', true);//开启 WordPress 缓存支持  
  2. define('ENABLE_CACHE', true); //开启 Object Cache 缓存支持  
保存退出,并重启 php-fpm 使其生效。
2、Batcache 插件需要在 WordPress 的 wp-content 目录下有 advanced-cache.php(高级缓存插件)和 object-cache.php(外部对象缓存)两个文件的支持,其中 advanced-cache.php 在插件 Batcache 目录里就有提供可以直接复制过去,object-cache.php 在【3、另外 wp-content 目录下的 advanced-cache.php 文件里可以修改一些 Batcache 生成缓存的参数,如:缓存时间、生成缓存规则等等,具体可以根据中文注释参考修改:
 
  1. var $max_age = 300; // 缓存过期时间(0 表示禁用 batcache)  
  2. var $remote = 0; // 禁止向远程数据中心发送缓冲区(从不发送 req/sec)  
  3. var $times = 2; // 一个页面被访问了多少次之后进行缓存(两个或两个以上)  
  4. var $seconds = 0; // …在这么多秒内(0 表示忽略它,立即使用 batcache)  
  5. var $group = 'batcache'; // memcached 组的名称。您可以通过更改此选项来模拟缓存刷新。  
  6. var $unique = array(); // 如果您有条件地提供不同的内容,请将变量值放在这里。  
  7. var $vary = array(); // 函数数组,用于 create_function。返回值被添加到上面的$unique 中。  
  8. var $headers = array(); // 在这里添加头作为 name=>值或 name=>数组(值)。这些将与缓存中的每个响应一起发送。  
  9. var $cache_redirects = false; // 设置 true 启用重定向缓存。  
  10. var $redirect_status = false; // 这将在重定向期间设置为响应代码。  
  11. var $redirect_location = false; // 这被设置为重定向位置。  
  12. var $use_stale = true; // 更新缓存时是否可以返回过期的缓存响应?  
  13. var $uncached_headers = array('transfer-encoding'); // 这些头将永远不会缓存。应用函数。  
  14. var $debug = true; // 设置 false 以隐藏 batcache 信息 <!-- comment -->  
  15. var $cache_control = true; // 将 false 设置为禁用 Last-Modified 和 Cache-Control 头  
  16. var $cancel = false; // 更改此选项以取消输出缓冲区。使用 batcache_cancel ();  
  17. var $noskip_cookies = array( 'wordpress_test_cookie' ); // cookie 的名称——如果它们存在并且缓存通常会被绕过,那么不要绕过它。  
记得修改完此文件后一定要重启一下 php-fpm 进程哦,否则是不会生效的哦!

明月自己已经测试 Memcached+Batcache 这种加速优化方式快一周了,至少到目前为止还是非常稳定和高效的需要注意的是,这种方式只对游客访问有效,登陆用户、已发表评论用户是无效的,这点儿可以通过浏览器中查看页面源代码最后的如下图所示注释文字来判断缓存是否生效:

上图可以看到当前 HTML 页面载入时间是 0.409 秒,其中 91640 字节的缓存在 86400 秒(一天)后失效,如果是登陆用户或者已经发表了评论的是无法看到此注释文字的哦,也就标明访问到的不是缓存页面。

综上所述,今天给大家推荐的这个缓存加速方案依旧是属于“救急”应对方案,建议在网站流量突增或者服务器负载紧张的时候“救急”一下最好,长期作为加速优化方案需要服务器内存比较富余的情况下可以考虑,相对于那种大型缓存插件来说这种方式比较简单、安全、高效一些,但跟 CDN 服务来说加速效果基本还是微不足道的。

「点点赞赏,手留余香」

还没有人赞赏,快来当第一个赞赏的人吧!

明月登楼给明月登楼打赏
×
予人玫瑰,手有余香
  • 2
  • 5
  • 10
  • 20
  • 50
2
支付

本文来自投稿,不代表明月登楼的博客立场,版权归原作者所有,欢迎分享本文,转载请保留出处!

明月登楼
明月登楼 关注:9    粉丝:0 最后编辑于:2021-01-18
玉满斋(www.ymanz.com)网站创始人,☑玉器爱好者 ☑微博控 ☑手机控 ☑历史控 ☑宅 ☑网络控 ☑Wordpress控

发表评论

表情 格式 链接 私密 签到
评论
正在努力加载中...
扫一扫二维码分享