By admin |

最近对drupal cache使用比较多。使用过memcache/memcache_storage/redis模块用来做drupal 的cache。

对于多站点来说,要注意设置cache_prefix变量,否则容易引起cache的混乱。一般配置在settings.php

$conf['cache_prefix'] = 'your-cache-prefix';

该方法对memcache/memcache_storage/redis同样适用。

但是redis有特殊之处。就是如果不设置这个值,默认提供一个cache_prefix。这个prefix是根据数据库的链接的md5计算出来的。就是说如果适用redis作为cache层,可以不关注这个设定。但是为了使用的友好性,建议设定这个值。

redis如何设定cache_prefix代码参见如下链接。

http://cgit.drupalcode.org/redis/tree/lib/Redis/Client.php?h=7.x-3.x#n87


但是每次手工设定,很麻烦,下面的代码可以根据drupal网站部署目录的最后一个目录名生成cache_prefix,如下:

#这段代码放在settings.php文件
$document_array = explode('/', $_SERVER['DOCUMENT_ROOT']);
$conf['cache_prefix'] = end($document_array);