池管理器

池管理器可以做全局的连接池管理,例如在EasySwooleEvent.php中的initialize中注册,然后可以在控制器中获取连接池进行获取连接:

  1. public static function initialize()
  2. {
  3. // TODO: Implement initialize() method.
  4. date_default_timezone_set('Asia/Shanghai');
  5. $config = new \EasySwoole\Pool\Config();
  6. $redisConfig1 = new \EasySwoole\Redis\Config\RedisConfig(Config::getInstance()->getConf('REDIS1'));
  7. $redisConfig2 = new \EasySwoole\Redis\Config\RedisConfig(Config::getInstance()->getConf('REDIS2'));
  8. //注册连接池管理对象
  9. \EasySwoole\Pool\Manager::getInstance()->register(new \App\Pool\RedisPool($config,$redisConfig1),'redis1');
  10. \EasySwoole\Pool\Manager::getInstance()->register(new \App\Pool\RedisPool($config,$redisConfig2),'redis2');
  11. }

控制器获取连接池连接:

  1. public function index()
  2. {
  3. //取出连接池管理对象,并getObj
  4. $redis1=\EasySwoole\Pool\Manager::getInstance()->get('redis1')->getObj();
  5. $redis2=\EasySwoole\Pool\Manager::getInstance()->get('redis1')->getObj();
  6. $redis1->set('name','仙士可');
  7. var_dump($redis1->get('name'));
  8. $redis2->set('name','仙士可2号');
  9. var_dump($redis2->get('name'));
  10. //回收对象
  11. \EasySwoole\Pool\Manager::getInstance()->get('redis1')->recycleObj($redis1);
  12. \EasySwoole\Pool\Manager::getInstance()->get('redis2')->recycleObj($redis2);
  13. }