memcache = new Memcached(); } else { $this->memcache = new Memcache(); } $this->memcache->addServer('127.0.0.1', 11211); } /** * Read values for a set of keys from cache * * @param array $keys list of keys to fetch * * @return array list of values with the given keys used as indexes * @return boolean true on success, false on failure */ protected function read(array $keys) { $res = array(); foreach ($keys as $key) { $k = sha1($key); $res[$key] = $this->memcache->get($k); } return $res; } /** * Save values for a set of keys to cache * * @param array $keys list of values to save * @param int $expire expiration time * * @return boolean true on success, false on failure */ protected function write(array $keys, $expire = null) { foreach ($keys as $k => $v) { $k = sha1($k); if (class_exists('Memcached')) { $this->memcache->set($k, $v, $expire); } else { $this->memcache->set($k, $v, 0, $expire); } } return true; } /** * Remove values from cache * * @param array $keys list of keys to delete * * @return boolean true on success, false on failure */ protected function delete(array $keys) { foreach ($keys as $k) { $k = sha1($k); $this->memcache->delete($k); } return true; } /** * Remove *all* values from cache * * @return boolean true on success, false on failure */ protected function purge() { return $this->memcache->flush(); } }