mirror of
https://github.com/phpbb/phpbb.git
synced 2025-06-28 14:18:52 +00:00
Use unique per board cache keys per [1] important when using shared memory from opcode caches with multiple boards on one server.
[1] http://area51.phpbb.com/phpBB/viewtopic.php?p=201739#p201739 git-svn-id: file:///svn/phpbb/branches/phpBB-3_0_0@9541 89ea8834-ac86-4346-8a33-228a782c2dd0
This commit is contained in:
parent
cd1c5de3a5
commit
832c6b2f62
5 changed files with 19 additions and 15 deletions
|
@ -57,7 +57,7 @@ class acm extends acm_memory
|
|||
*/
|
||||
function _read($var)
|
||||
{
|
||||
return apc_fetch($var);
|
||||
return apc_fetch($this->key_prefix . $var);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -71,7 +71,7 @@ class acm extends acm_memory
|
|||
*/
|
||||
function _write($var, $data, $ttl = 2592000)
|
||||
{
|
||||
return apc_store($var, $data, $ttl);
|
||||
return apc_store($this->key_prefix . $var, $data, $ttl);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -83,7 +83,7 @@ class acm extends acm_memory
|
|||
*/
|
||||
function _delete($var)
|
||||
{
|
||||
return apc_delete($var);
|
||||
return apc_delete($this->key_prefix . $var);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -49,6 +49,7 @@ class acm extends acm_memory
|
|||
foreach (eaccelerator_list_keys() as $var)
|
||||
{
|
||||
// @todo Check why the substr()
|
||||
// @todo Only unset vars matching $this->key_prefix
|
||||
eaccelerator_rm(substr($var['name'], 1));
|
||||
}
|
||||
|
||||
|
@ -76,7 +77,7 @@ class acm extends acm_memory
|
|||
*/
|
||||
function _read($var)
|
||||
{
|
||||
$result = eaccelerator_get($var);
|
||||
$result = eaccelerator_get($this->key_prefix . $var);
|
||||
|
||||
if ($result === null)
|
||||
{
|
||||
|
@ -106,7 +107,7 @@ class acm extends acm_memory
|
|||
// Serialize objects and make them easy to detect
|
||||
$data = (is_object($data)) ? $this->serialize_header . serialize($data) : $data;
|
||||
|
||||
return eaccelerator_put($var, $data, $ttl);
|
||||
return eaccelerator_put($this->key_prefix . $var, $data, $ttl);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -118,7 +119,7 @@ class acm extends acm_memory
|
|||
*/
|
||||
function _delete($var)
|
||||
{
|
||||
return eaccelerator_rm($var);
|
||||
return eaccelerator_rm($this->key_prefix . $var);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -91,7 +91,7 @@ class acm extends acm_memory
|
|||
*/
|
||||
function _read($var)
|
||||
{
|
||||
return $this->memcache->get($var);
|
||||
return $this->memcache->get($this->key_prefix . $var);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -105,7 +105,7 @@ class acm extends acm_memory
|
|||
*/
|
||||
function _write($var, $data, $ttl = 2592000)
|
||||
{
|
||||
return $this->memcache->set($var, $data, $this->flags, $ttl);
|
||||
return $this->memcache->set($this->key_prefix . $var, $data, $this->flags, $ttl);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -117,7 +117,7 @@ class acm extends acm_memory
|
|||
*/
|
||||
function _delete($var)
|
||||
{
|
||||
return $this->memcache->delete($var);
|
||||
return $this->memcache->delete($this->key_prefix . $var);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -22,6 +22,8 @@ if (!defined('IN_PHPBB'))
|
|||
*/
|
||||
class acm_memory
|
||||
{
|
||||
var $key_prefix;
|
||||
|
||||
var $vars = array();
|
||||
var $is_modified = false;
|
||||
|
||||
|
@ -34,9 +36,10 @@ class acm_memory
|
|||
*/
|
||||
function acm_memory()
|
||||
{
|
||||
global $phpbb_root_path;
|
||||
global $phpbb_root_path, $dbname, $table_prefix;
|
||||
|
||||
$this->cache_dir = $phpbb_root_path . 'cache/';
|
||||
$this->cache_dir = $phpbb_root_path . 'cache/';
|
||||
$this->key_prefix = md5($dbname, $table_prefix) . '_';
|
||||
|
||||
if (!isset($this->extension) || !extension_loaded($this->extension))
|
||||
{
|
||||
|
|
|
@ -62,7 +62,7 @@ class acm extends acm_memory
|
|||
*/
|
||||
function _read($var)
|
||||
{
|
||||
return xcache_get($var);
|
||||
return xcache_get($this->key_prefix . $var);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -76,7 +76,7 @@ class acm extends acm_memory
|
|||
*/
|
||||
function _write($var, $data, $ttl = 2592000)
|
||||
{
|
||||
return xcache_set($var, $data, $ttl);
|
||||
return xcache_set($this->key_prefix . $var, $data, $ttl);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -88,7 +88,7 @@ class acm extends acm_memory
|
|||
*/
|
||||
function _delete($var)
|
||||
{
|
||||
return xcache_unset($var);
|
||||
return xcache_unset($this->key_prefix . $var);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -101,7 +101,7 @@ class acm extends acm_memory
|
|||
function _isset($var)
|
||||
{
|
||||
// Most caches don't need to check
|
||||
return xcache_isset($var);
|
||||
return xcache_isset($this->key_prefix . $var);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue