From b5f836e4af705679e13506c4edfe67ca3039f004 Mon Sep 17 00:00:00 2001 From: alecpl Date: Wed, 18 May 2011 12:10:27 +0000 Subject: - Make memcached cache not system-wide --- program/include/rcube_cache.php | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) (limited to 'program') diff --git a/program/include/rcube_cache.php b/program/include/rcube_cache.php index d38c237c8..dda09885c 100644 --- a/program/include/rcube_cache.php +++ b/program/include/rcube_cache.php @@ -208,7 +208,7 @@ class rcube_cache } if ($this->type == 'memcache') { - $data = $this->db->get($key); + $data = $this->db->get($this->mc_key($key)); if ($data) { $this->cache_sums[$key] = md5($data); @@ -263,6 +263,7 @@ class rcube_cache } if ($this->type == 'memcache') { + $key = $this->mc_key($key); $result = $this->db->replace($key, $data, MEMCACHE_COMPRESSED); if (!$result) $result = $this->db->set($key, $data, MEMCACHE_COMPRESSED); @@ -313,7 +314,7 @@ class rcube_cache } if ($this->type == 'memcache') { - return $this->db->delete($key); + return $this->db->delete($this->mc_key($key)); } $this->db->query( @@ -325,4 +326,15 @@ class rcube_cache 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); + } } -- cgit v1.2.3