介绍
小编给大家分享一下swoole做mysql连接池的方法,希望大家阅读完这篇文章之后都有所收获、下面让我们一起去探讨吧!
连接池定义:永不断开,要求我们的这个程序是一个常驻内存的程序。数据库连接池(连接池)是程序启 动时建立足够的数据库连接,并将这些连接组成一个连接池,由程序动态地对池中的连接进行申请,使用,释放。
<>强实现连接池的方法:强>
同步阻塞模式:
可基于swoole的AsyncTask模块实现的连接池,编程简单,没有数据同步和锁的问题,甚至可以多个服务共享连接池。缺点是:1。灵活性不如多线程连接池,无法动态增减连接2。有一次进程间通信的开销
协程模式:
可使用通道实现连接池。
创建10个mysql连接示例代码:
& lt; php ?/* * ,* Created by  PhpStorm。 ,*用户:管理员 ,*日期:2018/11/20 *大敌;时间:14:12 ,*///编写mysql连接池,这个类只能被实例化一次(单例) class MysqlConnectionPool { ,,,private static 实例;美元//单例对象 ,,,private connection_num 美元;=,10;//连接数量 ,,,private connection_obj 美元;=,[]; ,,,//构造方法连接mysql,创建20 mysql连接 ,,,private function __construct () ,,,{ ,,,,,,,,(i=0; i<美元;这美元→connection_num;美元我+ +){ ,,,,,,,,,,,dsn 美元;=,“mysql:主机=127.0.0.1;dbnane=swoole"; ,,,,,,,,,,,这个→美元connection_obj [],=,, new Pdo (dsn美元,& # 39;根# 39;,& # 39;rootmysql123& # 39;); ,,,,,,,} ,,,} ,,,private function __clone () ,,,{ ,,,,,,,//,待办事项:,Implement __clone(),方法。 ,,,} ,,,public static function getInstance () ,,,{ ,,,,,,,如果(is_null (self:: $)) { ,,,,,,,,,,,self:: $ instance =, new 自我(); ,,,,,,,} ,,,} } MysqlConnectionPool: getInstance ();//创建swool的http服务器对象 $ serv =, new swoole_http_server (& # 39; 0.0.0.0 # 39;, 8000);//当浏览器链接点这个http服务器的时候,向浏览器发送helloworld 服务→美元(& # 39;请求# 39;,,函数(请求,响应美元){ ,,,//美元请求包含这个请求的所有信息,比如参数 ,,,//$响应包含返回给浏览器的所有信息,比如helloworld ,,,//(2.3)向浏览器发送helloworld ,,,反应→美元结束(“hello world"); });//启动http服务器 美元服务→开始();
效果
看完了这篇文章,相信你对“swoole做mysql连接池的方法”有了一定的了解,如果想了解更多相关知识,欢迎关注行业资讯频道,感谢各位的阅读!