欢迎来到天天文库
浏览记录
ID:28698545
大小:32.50 KB
页数:3页
时间:2018-12-13
《drupal地缓存技术地的应用-让你地网站飞起来》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、实用标准文案Drupal的缓存技术应用-让你的网站飞起来 经常在论坛和QQ群上听人说Drupal很慢,初始状态下承载不了多少数据量及并发,性能很差。但是我们可以发现很多大站也是用Drupal开发的,因为大站做了性能优化,包括硬件及软件优化,这里我们来讨论一下Drupal缓存技术。 所以,你不能说要彻底解决性能问题,但你可以根据实际情况,采用一些常用的解决方案来让网站的性能得到显著提升。我们常说的80/20理论你肯定知道,那么用20%的努力换取80%的性能提升,何乐而不为呢。 Drupal作为Web开源系统的一种,被称之为CMF(内容
2、管理框架),拥有非常优秀的架构和扩展性,以及海量的第三方模块,现在已经被越来越多的人所熟知和采用。采用Drupal这样主流Web系统的一个好处就是有好多全世界优秀的专家投入到其中,给出各种各样的性能优化方案。我们大多数人作为使用者只要知道如何选择适合自己的优化方案,就能显著提升自己网站的性能。前面说的都是性能优化,其实本文的重点是缓存技术,在我看来,对Drupal来说,缓存和性能优化基本就是同义词,大多数Drupal的优化技术都是使用各种各样的缓存。缓存有的是静态页面缓存,有的是动态缓存,博狗longkouedu.com有的是CSS,Ja
3、vascript和图片的缓存。有的放在内存里,有的放数据库里,有的放磁盘上,还有的还需要配合一些服务器软件来提供。林林总总,对新手来说很可能就挑花眼了,所以本文想要在缓存这个话题上,给新手一些指引,本人学识有限,不可能面面俱到,希望读者可以批评指正。 核心缓存 作为最基本的优化手段,Drupal对缓存提供了一些基本的支持,比如外部的区块缓存,匿名用户页面缓存,内部还有比如菜单系统缓存,主题钩子注册表缓存等等。 可以说,作为一个不大的Drupal站点,使用核心内置的常规手段,性能就不会太差。多说一句,一般开发阶段是不开启缓存的,但一旦
4、上线,区块缓存和匿名用户静态页面是必须要开的,CSS和JS也一定是要开启合并压缩的。这样一来,对于匿名用户,应该说速度就会比之前快不少。 Boost Drupal默认提供的匿名用户缓存是存在数据库里的,这意味着即使是缓存了的网页也要占用数据库连接和内网流量。而如果换成Boost模块,你的缓存都直接走静态文件,这不仅仅是不走数据库了,甚至都不经过Drupal了,所以作为页面缓存来讲Boost的效果极为出色。 VarnishHTTPAcceleratorIntegration 这里把Varnish模块列出来只是要告诉大家,如果你的服务
5、器仍然有很大的内存,如果在前面使用Varnish服务器软件,你可以将静态网页缓存到Varnish开辟的内存中,可想而知速度就更快了。而且Varnish还可以帮助你缓存CSS,Javascript等静态文件。 MemcacheAPIandIntegration,MemcacheStorage,Redis 匿名用户的访问已经那么快了,那如果你的网站有很多活跃的登录用户怎么办呢,之前说的大部分缓存都将失效,这可如何是好呢,对于登录用户来说,最有效的就是使用Memcache让许多系统的内部缓存可以从内存中读取,从而得到更好的性能,并且Memc
6、ache本身还是可以分布式部署的,澳门新濠天地keelungedu.com有很好的延展性。而最后一个Redis同样优秀,这里不会比较它们之间的优劣,只是建议你可以先从Memcache开始。 MemcacheAPIandIntegration和MemcacheStorage,你只需要一个,并且较为推荐后者。 APC-AlternativePHPCache 另一个能让登录用户感觉到快起来的技术就是AlternativePHPCache,也就是APC,他的作用就是让PHP文件不必每次都从磁盘加载,而是可以缓存到内存,并且是缓存的编译中间代
7、码,所以对PHP语言的复杂系统来说优化效果很明显。这可以说是所有PHP精彩文档实用标准文案网站必装的一个组件,当然他还有其他竞争者,比如eAccelerator,XCache以及最新的ZendOpcache等组件。不过再ZendOpcache组件没出现之前,APC在Linux系统上的表现略强于其他,而新出的ZendOpcache据说可以比APC还强上一些(10%以下),但同样,这里不做比较,只是建议你可以从APC开始。这里有一篇文章(linkisexternal)可以作为你的延伸读物。 另外,如果我们紧紧是使用APC的代码文件Opcod
8、e缓存特性,是不需要APC这个模块的,这个模块提供的是存一些额外的数据缓存到APC,这样我们就能够做到一部分不经常改变的cache表放到APC,经常改变的cache表放到Memcache,另外
此文档下载收益归作者所有