php-connect-poolPDO/Redis 连接池
php-connect-pool 是一个专门为 PHP 的 apache/php-fpm 设计的 PDO/Redis 连接池。提供连接池、读写分离、负载均衡、慢查询日志、大数据块日志等功能。
要求
- PHP 5.3 + (no zts)
- linux 2.6+
- pdo and redis extension install
技术特性
- 提供了release方法,在每次fetch数据后(redis的get set) 调用,将连接放回到池子里面,避免其他耗时操作导致的db层连接数过高问题。
- 提供最大最小连接数配置支持。
- 连接自动ping 数据库, 防止压力小长时间不请求导致的gone away问题
- 根据压力自动获取(最大到最大连接数)或者释放(释放最小到最小连接数)池子里面的连接。
- 做了大量优化虽然请求经过代理进程转发但基本没有性能损耗.
- 当池子里面的连接被占用没了,接下来的挣钱连接的进程将会排队,直到持有连接的进程release连接.
- 使用透明化,相对于传统的pdo和redis操作,只需要修改new的类名,以及适当时机release连接即可(可以集成到db层框架)
- 支持pdo的读写分离和从库的负载均衡。
- 支持cli模式下的pdo和redis异步查询。
- 支持慢查询日志(max_hold_time_to_log)以及大的数据块(max_data_size_to_log)日志功能。
示例程序
$db = new pdo_connect_pool('dsn_url'); $redis = new redis_connect_pool(); $db->release();//释放连接 $redis->release();
评论