diff options
author | alecpl <alec@alec.pl> | 2011-05-18 12:10:27 +0000 |
---|---|---|
committer | alecpl <alec@alec.pl> | 2011-05-18 12:10:27 +0000 |
commit | b5f836e4af705679e13506c4edfe67ca3039f004 (patch) | |
tree | 47e45f24fdfdc6a3098b9e6dde3b3f47c852f76a | |
parent | 5cf5ee66c1fd3e86f009124aee58df26780ce311 (diff) |
- Make memcached cache not system-wide
-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); + } } |