/**
  * 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;
 }
Example #2
0
 public function testGetSetDatabase()
 {
     $this->assertTrue($this->_storage->setItem('key', 'val'));
     $this->assertEquals('val', $this->_storage->getItem('key'));
     $databaseNumber = 1;
     $resourceManager = $this->_options->getResourceManager();
     $resourceManager->setDatabase($this->_options->getResourceId(), $databaseNumber);
     $this->assertNull($this->_storage->getItem('key'), 'No value should be found because set was done on different database than get');
     $this->assertEquals($databaseNumber, $resourceManager->getDatabase($this->_options->getResourceId()), 'Incorrect database was returned');
 }
Example #3
0
 public function __construct($options)
 {
     parent::__construct($options);
 }