Drupal7缓存配置技巧apcmemcachefilecache
Posted yingcloud
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Drupal7缓存配置技巧apcmemcachefilecache相关的知识,希望对你有一定的参考价值。
drupal6有个著名的cacherouter模块,能同时支持db、apc、memcache、file缓存,可以灵活配置各种缓存在不同地方,例如默认在apc、cache_page在file、session在memcache等。
(顺便说说,cacherouter的作者对drupal团队有意见:“我这么好的模块为什么不加入核心?”呵呵)
而在drupal7怎则有三个对应的模块:apc、memcache、filecache,每个模块都有各自帮助文件,笔者偶然发现三个模块的配置方法都差不多,于是把它们综合起来。
方法如下:
1、先下载三个缓存模块在sites/all/modules里面,不用激活模块。
2、在settings.php末尾加上以下配置:
//都是数组,次序无关
//首先memcache
$conf['cache_backends'][] = 'sites/all/modules/memcache/memcache.inc';
//缓存的默认指定,即除了特别指定外的所有cache都是用memcache(本例)
$conf['cache_default_class'] = 'MemCacheDrupal';
$conf['memcache_servers'] = array(
'127.0.0.1:11211' => 'default',
);
$conf['memcache_bins'] = array(
'cache' => 'default',
'cache_filter' => 'default',
'cache_menu' => 'default'
);
//然后是apc,apc最快,但容量宝贵。
$conf['cache_backends'][] = 'sites/all/modules/apc/drupal_apc_cache.inc';
//drupal的cache和bootstrap,对应数据库里的表,使用apc
$conf['cache_class_cache'] = 'DrupalAPCCache';
$conf['cache_class_cache_bootstrap'] = 'DrupalAPCCache';
//最后是文件缓存
$conf['cache_backends'][] = 'sites/all/modules/filecache/filecache.inc';
//文件存放目录
$conf['filecache_directory'] = '/tmp/filecache-' . substr(conf_path(), 6);
$conf['filecache_fast_pagecache'] = TRUE; //暂时未用到
//页面缓存,对应数据库里的cache_page使用文件缓存
$conf['cache_class_cache_page'] = 'DrupalFileCache';
//这两句建议加上,页面缓存不用读数据库
$conf['page_cache_without_database'] = TRUE;
$conf['page_cache_invoke_hooks'] = FALSE;
本文给出的配置只是例子,根据实际环境进行调配。
各种缓存的效率,最快的是apc,其次是memcache,但如果filecache的目录设定在shm(内存盘),则可能比memcache要快。
apc本身是opcode脚本缓存,缓存数据会占用内存而且产生碎片,一般只存放最常用的数据;
memcache通常用于多服务器环境,需要tcp连接,所以速度比apc慢,而且小站一般用不上;
filecache最便宜,容量几乎无限,但对于一些磁盘io性能差的空间,未必就能带来好处,
以上是关于Drupal7缓存配置技巧apcmemcachefilecache的主要内容,如果未能解决你的问题,请参考以下文章