Home  >  Article  >  PHP Framework  >  How to use swoole to create mysql connection pool

How to use swoole to create mysql connection pool

尚
Original
2020-01-09 16:07:212507browse

How to use swoole to create mysql connection pool

Connection pool definition: never disconnect, requiring our program to be a memory-resident program. Database connection pooling (Connection pooling) is a program startup Establish enough database connections when running, and form these connections into a connection pool, and the program dynamically applies for, uses, and releases the connections in the pool.

Method to implement connection pool:

Synchronous blocking mode:

The connection pool can be implemented based on swoole's AsyncTask module, with simple programming and no data Synchronization and locking issues. Connection pools can even be shared by multiple services. The disadvantages are: 1. It is not as flexible as the multi-threaded connection pool and cannot dynamically increase or decrease connections. 2. There is the overhead of inter-process communication

Coroutine mode:

You can use channel to implement the connection pool.

Create 10 mysql connection sample code:

<?php
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2018/11/20
 * Time: 14:12
 */
//编写mysql连接池,这个类只能被实例化一次(单例)
class MysqlConnectionPool
{
    private static $instance;//单例对象
    private $connection_num = 10;//连接数量
    private $connection_obj = [];

    //构造方法连接mysql,创建20mysql连接
    private function __construct()
    {
        for($i=0;$i<$this->connection_num;$i++){
            $dsn = "mysql:host=127.0.0.1;dbnane=swoole";
            $this->connection_obj[] =  new Pdo($dsn,&#39;root&#39;,&#39;rootmysql123&#39;);
        }
    }
    private function __clone()
    {
        // TODO: Implement __clone() method.
    }
    public static function getInstance()
    {
        if(is_null(self::$instance)){
            self::$instance = new self();
        }
    }
}
MysqlConnectionPool::getInstance();
//创建swool的http服务器对象
$serv = new swoole_http_server(&#39;0.0.0.0&#39;,8000);
//当浏览器链接点这个http服务器的时候,向浏览器发送helloworld
$serv->on(&#39;request&#39;, function($request,$response){
    //$request包含这个请求的所有信息,比如参数
    //$response包含返回给浏览器的所有信息,比如helloworld

    //(2.3)向浏览器发送helloworld
    $response->end("hello world");
});
//启动http服务器
$serv->start();

Effect

How to use swoole to create mysql connection pool

Recommended learning: swoole tutorial

The above is the detailed content of How to use swoole to create mysql connection pool. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn