php-connect-poolPDO/Redis 连接池

联合创作 · 2023-09-29 14:12

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();
浏览 20
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报