在我们使用redis作为discuz的缓存时,体验到了速度的提升。但是,当我们有两个以上的网站都使用同一个redis server开启缓存时,就存在冲突了,因为默认的情况下,discuz使用第一个库,也就是redis的db0作为数据存储的库的。
我们只需要做简单的改造就可以优雅的解决这个问题,开始:
1、开启Redis并增加配置项:
打开:config/config_global.php,Redis服务器地址如果在别的机器,请填写机器的IP地址,如果是本机就是127.0.0.1
在$_config[‘memory’][‘redis’][‘serializer’] = 1;的下一行添加一行:$_config[‘memory’][‘redis’][‘db’] = 1; 其中1就是你选的DB编号了。
2.修改代码文件,让discuz支持db参数:
打开source/class/memory/memory_driver_redis.php:找到$this->obj->setOption(Redis::OPT_SERIALIZER, $config[‘serializer’]);在下一行增加DB选择的代码:
$this->select($config[‘db’]);
3.找到clear()函数,把flushAll操作改为flushDb操作,因为我们的redis不是专门给一个网站用的,flushAll是把redis全部数据都清了(flushdb是把本db清了),这段代码是谁写的,我也是服了。。。
到这里就算是大功告成了。看下效果:
嗯,都写到规定的数据库里了,哎呀,干净了。