Drupal7缓存配置技巧apc、memcache、filecache

来源:互联网 发布:自动聊天软件下载 编辑:程序博客网 时间:2024/04/28 23:11

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性能差的空间,未必就能带来好处,

原创粉丝点击