/** * Gets a redis resource * * @param string $id * @return RedisResource * @throws Exception\RuntimeException */ public function getResource($id) { if (!$this->hasResource($id)) { throw new Exception\RuntimeException("No resource with id '{$id}'"); } $resource =& $this->resources[$id]; if ($resource['resource'] instanceof RedisResource) { //in case new server was set then connect if (!$resource['initialized']) { $this->connect($resource); } $info = $resource['resource']->info(); $resource['version'] = $info['redis_version']; return $resource['resource']; } $redis = new RedisResource(); foreach ($resource['lib_options'] as $k => $v) { $redis->setOption($k, $v); } $resource['resource'] = $redis; $this->connect($resource); $info = $redis->info(); $resource['version'] = $info['redis_version']; $this->resources[$id]['resource'] = $redis; return $redis; }