增强magento的缓存机制!

magento系统是一个非常优秀的系统,个人分析如下

1

模块强大的可扩展性

2

eav表结构,让客户自己增加产品等属性非常容易,index manager这个功能在讲这些表合并起来,成为一个表,在数据库的product和category表,你应该能发现后缀为flat_1的表吧,这个就是magento表,这也是magento为什么在使用后,尤其是多网店,多域名,表会越来越多的原因!

3

多网店,多域名,更强的配置!

4

magento的缓存机制!

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

本文讲解的是magento的缓存机制

magento默认的缓存block,是菜单,其余的都没有做缓存!这其实也不难理解,不同的客户有不同的需求,我们做开源系统的,难调众口,你们自己去做吧!

不同于门户网站,magento是不能完全做静态页面的,因为有一些动态的因素,譬如购物车的信息,

所以magento只能做局部缓存,这也就是本文要说的magento block缓存机制!

对于一个block的缓存,只需要在这个block的type对应的文件中添加一下的代码即可

1protected function _construct()
2{
3     $this ->addData( array (
4         'cache_lifetime'     => 86400,  //seconds
5         'cache_tags'         => array (Mage_Catalog_Model_Product::CACHE_TAG . "_" . $this ->getProduct()->getId()),
6         'cache_key'          => $this ->getProduct()->getId(),
7     ));
8}
也就是吧上面的三个变量赋值即可,下面的问题就是牵扯到这个值的生成问题,保证相同的URL在不同的参数下,譬如不同的货币,不同的store等,显示的缓存也是不一样的
这样cache_key 要通过货币,store,website,url等一些变量动态生成,这样保证这个页面的唯一性
~!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
对于magento的提速,看很多资料上说block的精简等等
人,活在世界上,不可能花费那么长的时间做一件事情,对于magento的代码精简,对于可行性,我持反对态度,太耗费时间,还不如做block缓存呢!只要服务器配置好,做好缓存,开启编译,缓存,js,css合并,将css,js文件加入linux缓存,php加速器安装等,1-2秒刷新出来一个页面,不是个困难的事情!
对于购买的服务器,一定要可以开启gzip压缩模块,。这样可以减少很多文件加载的速度,文本压缩在80-90%左右,这也就是一些网站加载完成后要 1,5MB但是加载很快的原因,因为他们传输过来的文件没有1.5MB,gzip压缩了。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~·
如果您想做block cache,可以联系我!我这里有测试过的block 扩展
首页,分类页面,产品详细页的content,left,right整体缓存!
大致就是将没有动态信息显示的都做成缓存!