Heim > Artikel > PHP-Framework > So erstellen Sie mit Swoole einen MySQL-Verbindungspool
Definition des Verbindungspools: Trennen Sie niemals die Verbindung, da unser Programm ein speicherresidentes Programm sein muss. Das Datenbankverbindungspooling (Verbindungspooling) ist ein Programmstart Stellen Sie beim Ausführen genügend Datenbankverbindungen her und formen Sie diese Verbindungen zu einem Verbindungspool. Das Programm beantragt, verwendet und gibt die Verbindungen im Pool dynamisch frei.
Methode zum Implementieren des Verbindungspools:
Synchroner Blockierungsmodus:
Der Verbindungspool kann basierend auf dem AsyncTask-Modul von swoole mit einfacher Programmierung und implementiert werden Keine Datensynchronisierungs- und Sperrprobleme. Verbindungspools können sogar von mehreren Diensten gemeinsam genutzt werden. Die Nachteile sind: 1. Es ist nicht so flexibel wie der Multithread-Verbindungspool und kann Verbindungen nicht dynamisch erhöhen oder verringern. 2. Es gibt einen Overhead für die Kommunikation zwischen Prozessen
Coroutine-Modus:
Sie können den Kanal verwenden, um den Verbindungspool zu implementieren.
Erstellen Sie 10 MySQL-Verbindungsbeispielcodes:
<?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,'root','rootmysql123'); } } 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('0.0.0.0',8000); //当浏览器链接点这个http服务器的时候,向浏览器发送helloworld $serv->on('request', function($request,$response){ //$request包含这个请求的所有信息,比如参数 //$response包含返回给浏览器的所有信息,比如helloworld //(2.3)向浏览器发送helloworld $response->end("hello world"); }); //启动http服务器 $serv->start();
Effekt
Empfohlenes Lernen: Swoole-Tutorial
Das obige ist der detaillierte Inhalt vonSo erstellen Sie mit Swoole einen MySQL-Verbindungspool. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!