php-cp(php-connect-pool)是用php扩大写的一个数据库衔接池。
一、它不同于市面上其他的开源数据库中间件产物
1、它不须要零丁布置中间件集群,是跑在应用服务器上的代办历程,减少了一层外部依靠,如许使得架构越发简朴、清新、牢靠。
2、机能更高,减少了一次收集传输,它经由过程高效的ipc体式格局和php历程通讯,而且避免了协定剖析的斲丧。
3、同时支撑redis和mysql,不须要布置2套零丁的中间件体系。
二、简朴原理图
三、手艺特征
1、支撑最大最小衔接数设置。
2、支撑压力小自动接纳衔接(力度和频次可设置)。
3、支撑腻滑重启。
4、支撑衔接用光的列队机制。
5、同时支撑mysql和redis。
6、运用简朴,框架简朴整合后(修正new 要领),现有营业一行代码都不必改即可用上衔接池。
7、供应了get_disable_list函数,来取得不可用的宕机ip列表,如许负载平衡也能够做在客户端(设置文件悉数的ip和宕机ip做差集,然后再随机即可)。
btw:你也能够用lvs,然则lvs转发在体系架构上引入了依靠,dr形式不能跨网段又限定了扩容,而且后端db出问题只能晓得lvs的vip。
8、衔接池历程会启动ping历程来监听宕机列表,假如可用会反应到get_disable_list函数的返回值上.
9、做了大批优化,虽然要求经由衔接池历程转发,然则基本无qps消耗。
四、怎样运用
1、把pool.ini文件放到 /etc/ 并按需修正内里的设置。
2、启动代办历程
./pool_server start
支撑 "start" "stop" "restart" "reload"敕令
3、修正php剧本
$db = new PDO(xxxxx); 修正成 $db = new pdo_connect_pool(xxxx);//dont use persistent $redis = new Redis(); 修正成 $redis = new redis_connect_pool();//dont use pconnect
提醒:
尽早挪用$db/$redis->release() 来开释这个历程占用的衔接到池子内里。
引荐教程:PHP视频教程
以上就是php有数据库衔接池吗的细致内容,更多请关注ki4网别的相干文章!