我遇到这种情况: 我在一台服务器上有2个站点 - 我使用相同的框架(基于Codeigniter框架)。在这段代码中我使用了像
这样的memcache $memcache = new Memcache;
$memcache->connect('localhost', 11211);
$value = $memcache->set('max_id', 100500);
在这种情况下,当我在site1上更改此值时,我也为site2提供了此值,但我需要为不同的站点使用不同的值。
当然我可以替换所有键,添加site_url()如下:
$value = $memcache->set(base_url() . 'max_id', 100500);
但也许存在更好的解决方案?
答案 0 :(得分:0)
我找到了解决方案: 创建一个新类,它继承自Memcache并在我的网站上使用此类。
class Site_Memcache extends Memcache
{
private $_prefix = '';
public function __construct()
{
$this->_prefix = $_SERVER['HTTP_HOST'];
}
public function set($key, $var, $flag = null, $expire = null)
{
parent::set($this->_prefix . $key, $var, $flag, $expire);
}
public function get($key, &$flags = null)
{
return parent::get($this->_prefix . $key, $flags);
}
public function delete($key)
{
return parent::delete($this->_prefix . $key);
}
}