- Make memcached cache not system-wide

release-0.6
alecpl 14 years ago
parent 5cf5ee66c1
commit b5f836e4af

@ -208,7 +208,7 @@ class rcube_cache
} }
if ($this->type == 'memcache') { if ($this->type == 'memcache') {
$data = $this->db->get($key); $data = $this->db->get($this->mc_key($key));
if ($data) { if ($data) {
$this->cache_sums[$key] = md5($data); $this->cache_sums[$key] = md5($data);
@ -263,6 +263,7 @@ class rcube_cache
} }
if ($this->type == 'memcache') { if ($this->type == 'memcache') {
$key = $this->mc_key($key);
$result = $this->db->replace($key, $data, MEMCACHE_COMPRESSED); $result = $this->db->replace($key, $data, MEMCACHE_COMPRESSED);
if (!$result) if (!$result)
$result = $this->db->set($key, $data, MEMCACHE_COMPRESSED); $result = $this->db->set($key, $data, MEMCACHE_COMPRESSED);
@ -313,7 +314,7 @@ class rcube_cache
} }
if ($this->type == 'memcache') { if ($this->type == 'memcache') {
return $this->db->delete($key); return $this->db->delete($this->mc_key($key));
} }
$this->db->query( $this->db->query(
@ -325,4 +326,15 @@ class rcube_cache
unset($this->cache_keys[$key]); unset($this->cache_keys[$key]);
} }
/**
* Creates per-user Memcache key
*
* @param string $key Cache key
* @access private
*/
private function mc_key($key)
{
return sprintf('[%d]%s', $this->userid, $key);
}
} }

Loading…
Cancel
Save