首页 / 帖子
求Drupal 关于 memcache_storage 多站配制的方法

如题,如果是单个网站直接把memcache_storage这个模块提供的配制:

// $conf['cache_backends'][] = 'sites/all/modules/memcache_storage/memcache_storage.inc';
// $conf['cache_default_class'] = 'MemcacheStorage';
// $conf['cache_class_cache_form'] = 'DrupalDatabaseCache';
// $conf['cache_class_cache_update'] = 'DrupalDatabaseCache';

但是如果是多站配制,就是同一套代码多个网站。按照说明,我加一行配制:

// $conf['memcache_key_prefix'] = 'cache_site_a_';

上面这一行,每个子站的值都不一样,但是在我把每个子站开启Memcache但是问题还是来了


当我刷新页面的时候所有网站都乱了,A站用了B站的缓存,C站也用了B站的缓存,D站也用了B站的缓存。这个……


求真相,谢谢。

2个答案
Amanda Song
发布于:2014-10-16 00:01
$conf['memcache_key_prefix'] = 'something_unique';

就是在配置文件里面这么搞,你会不会是没有生效?memcache重启一下看看。

Drupal memcache 文档: https://www.drupal.org/node/1131468


Amanda Song
发布于:2014-10-16 17:49

根据我的经验,如果你开启的多站点,如果你想同步登录,不可以用memcache_key_prefix的方式,你只能主站开启memcache,其他站链接到主站的memcache去取用户状态,并且其他bin仍然使用本地数据库,这里也许会有更好的方式可以让除用户以外的bin使用其他prefix的Memcache,但我还不知道。


如果你各个站完全独立,不需要用户同步登录,那么prefix的方式应该可以解决你的问题。