diff options
Diffstat (limited to 'program/include')
-rw-r--r-- | program/include/rcube_cache.php | 16 |
1 files changed, 14 insertions, 2 deletions
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); + } } |