码云 IDEA 插件最新版本发布,支持 Pull Request

swoole / frameworkPHPLGPL-3.0

指数
0
Watch 97 Star 310 Fork 77
加入码云
与超过 300 万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
基于Swoole扩展开发的PHP web server&应用服务器, 内置框架。提供统一注册树,数据库操作,模板,Cache,日志,队列,上传管理,用户管理等丰富的功能特性。 展开 收起

Redis.php 1.45 KB
一键复制 编辑 Web IDE 原始数据 按行查看 历史
matyhtf 提交于 2016-08-30 17:16 . 调整连接池细节
<?php
namespace Swoole\Async;
use Swoole;
class Redis extends Pool
{
const DEFAULT_PORT = 6379;
function __construct($config = array(), $poolSize = 100)
{
if (empty($config['host']))
{
throw new Swoole\Exception\InvalidParam("require redis host option.");
}
if (empty($config['port']))
{
$config = self::DEFAULT_PORT;
}
parent::__construct($config, $poolSize);
$this->create(array($this, 'connect'));
}
protected function connect()
{
$redis = new \swoole_redis();
$redis->on('close', function ($redis)
{
$this->remove($redis);
});
return $redis->connect($this->config['host'], $this->config['port'], function ($redis, $result)
{
if ($result)
{
$this->join($redis);
}
else
{
$this->failure();
trigger_error("connect to redis server[{$this->config['host']}:{$this->config['port']}] failed. Error: {$redis->errMsg}[{$redis->errCode}].");
}
});
}
function __call($call, $params)
{
return $this->request(function (\swoole_redis $redis) use ($call, $params)
{
call_user_func_array(array($redis, $call), $params);
//必须要释放资源,否则无法被其他重复利用
$this->release($redis);
});
}
}

评论 ( 1 )

你可以在登录后,发表评论

搜索帮助