协程连接池 - Redis

优质
小牛编辑
130浏览
2023-12-01

Redis协程连接池

demo中有封装好的redis连接池,RedisPool.php,复制demo中的RedisPool.php并放入App/Utility中即可使用

添加数据库配置

在Config中添加配置信息:

  1. 'REDIS' => [
  2. 'host' => '127.0.0.1', // redis主机地址
  3. 'port' => 6379, // 端口
  4. 'serialize' => false, // 是否序列化php变量
  5. 'dbName' => 1, // db名
  6. 'auth' => null, // 密码
  7. 'pool' => [
  8. 'min' => 5, // 最小连接数
  9. 'max' => 100 // 最大连接数
  10. ],
  11. 'errorHandler' => function(){
  12. return null;
  13. } // 如果Redis重连失败,会判断errorHandler是否callable,如果是,则会调用,否则会抛出异常,请自行try
  14. ]

并在Config的COROUTINE_POOL中新增该连接池

  1. 'POOL_MANAGER' => [
  2. 'App\Utility\RedisPool' => [
  3. 'min' => 5,
  4. 'max' => 100,
  5. 'type' => 1
  6. ]
  7. ]

使用

获取到对象后,可以使用exec方法来执行任何命令,例如:

  1. $redis = $pool->getObj(); // 这里的pool是通过poolManager获取的RedisPool
  2. $redis->exec('set', 'a', '123');
  3. $a = $redis->exec('get', 'a');
  4. $pool->freeObj($redis);

注意

尚未实现的方法scan object sort migrate hscan sscan zscan
其他说明详见Mysql协程连接池