easyswoole数据库连接池_EasySwoole使用Mysqli

EasySwoole使用Mysqli

羡仙. • 2019 年 05 月 06 日

我为什么要写这些东西呢!因为好多的文档他并不是我所想的能复制粘贴就直接用了!还要改!有的地方写的还不全.复制过来就报错!!而我希望我之前学过的东西在以后用的时候能tm直接复制粘贴去使用它!减少我效率,并不是百分之百的乐于分享!只是笔记好多都是贴的图.直接复制代码不好看,嘤嘤嘤

好话不多说!首先来安装mysqli类库

安装composer require easyswoole/mysqli

然后配置文件的参数官方文档是这样的/*################ MYSQL CONFIG ##################*/

'MYSQL' => [

'host' => '192.168.75.1',

'port' => '3306',

'user' => 'root',

'timeout' => '5',

'charset' => 'utf8mb4',

'password' => 'root',

'database' => 'cry',

'POOL_MAX_NUM' => '20',

'POOL_TIME_OUT' => '0.1',

],

而我的是这样的.host = '127.0.0.1'

port = '3306'

user = 'root'

timeout = '5'

charset = 'utf8mb4'

password = 'root'

database = 'video'

POOL_MAX_NUM = '20'

POOL_TIME_OUT = '0.1'

配置文件这里我用的是Yaconf.配置的名字为mysql.ini

这个牛逼的东西日后会写一篇(主要也是贴链接= =).现在先简单的说一下获取参数方法Yaconf::get('mysql').当然你不能直接用还需要安装.现在先给你秀一秀我是怎么用的.

测试调用接口use EasySwoole\Mysqli\Mysqli;

use EasySwoole\Mysqli\Config as mysqlConfig;

public function test()

{

$conf = \Yaconf::get('mysql');

$mysqlConf = new mysqlConfig($conf);

$db = new Mysqli($mysqlConf);

$data = $db->get('video');

$this->writeJson(0, 'ok', $data);

}

运行结果

很简单的就成功了嘛!不过注意看文档!这里必须要点过去看下文档哈!因为他是这么说的由于是协程状态,每次请求进来都必须使用不同的实例,如果一个请求进来就new,完成请求逻辑就销毁,每次都会创建连接,然后销毁,这样开销会非常大,所以我们可以采用连接池方式,复用连接EasySwooleEvent.php的initialize方法中注册连接池对象

PoolManager::getInstance()->register(MysqlPool::class,Config::getInstance()->getConf('MYSQL.POOL_MAX_NUM'));

注意:那是官方的.而我的是这样的PoolManager::getInstance()->register(MysqlPool::class,\Yaconf::get('mysql.POOL_MAX_NUM'));

可以看到调用了MysqlPool我们发现有点点问题.至于啥问题你下载了自己和我的对比着看吧.如果你不用我的方式获取配置那就没有问题的哦~我只是适配我自己的

官方文档中有写好的链接池demo.直接下载来放到App/Utility/Pool.根据个人哈,不一定非要放到这,demo传送门App\Utility\Pool\MysqlPool.php的createObject方法就行protected function createObject()

{

//当连接池第一次获取连接时,会调用该方法

//我们需要在该方法中创建连接

//返回一个对象实例

//必须要返回一个实现了AbstractPoolObject接口的对象

$conf = \Yaconf::get('mysql');

$dbConf = new Config($conf);

return new MysqlObject($dbConf);

// TODO: Implement createObject() method.

}

然后你自己找文档吧!不给链接的.通过刚才的那个链接也行

使用defer方法直接获取一个连接池连接,直接使用,协程结束后自动回收:public function defert()

{

$db = MysqlPool::defer();

$data = $db->get('video');

$this->writeJson(0, 'ok', $data);

}

很明显成功了嘛!也没干什么嘛.官方还给了一堆的方法.有兴趣可以自己尝试哈

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/566358.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

rhce考试试题以及答案_搞懂这套五年级数学上册期末考试试题(含答案),考试不担心...

快要期末考试了,今天海老师以北师大版五年级数学上册期末考试的一份试题为例,分析一下六年级数学上册期末考试题型。先看看试卷(答案文后另附):总的来说这份试卷难度适中,主要以面积计算(梯形、正方形、长方形、组合图形)、分数的…

idea的总部_雷普索尔- YPF总部

雷普索尔- YPF总部Repsol-YPF is located in the up-and-coming district of Puerto Madero in Buenos Aires. The design originally called for a three-story parking garage at the intersection of Macacha Gemes and Juana Manso streets. Balmori Associates buried the…

fetch用英语解释_fetch的意思在线翻译,解释fetch中文英文含义,短语词组,音标读音,例句,词源,同义词【澳典网ODict.Net】...

fetch 1fetch的音标和读音:DJ音标发音: [fetʃ]KK音标发音: [fɛtʃ]fetch的词性:v.(动词)fetched, fetching, fetchesfetch的词性:v.tr.(及物动词)1. To come or go after and take or bring b…

添加中文数据出现问号_怪物猎人世界绚辉龙和冥赤龙的出现时间规律一览

估计在七月上旬煌黑龙出现前,所有的活动任务都不会消失,唯一在变的元素就是绚辉龙和冥赤龙这两条特殊的古龙。绚辉龙和冥赤龙目前看来是交替出现的,也就是说有绚辉龙的日子就不会有冥赤龙,每条龙分别驻场两周。如无意外的话&#…

python中strip是什么意思啊_python中的strip是什么意思

Python中strip() 方法用于移除字符串头尾指定的字符(默认为空格或换行符)或字符序列。注意:该方法只能删除开头或是结尾的字符,不能删除中间部分的字符。它的函数原型:string.strip(s[, chars]),它返回的是字符串的副本&#xff0…

只可顺守不可逆取书法_闲章不“闲”

点击图片,学习春秋国画教程!闲章由秦汉时期刻有吉祥文字的印章演变而来,宋元以后风气颇盛,名谓“闲章”,其实不“闲”。到了近代,闲章便发展成为中国书画艺术不可或缺的部分。闲章的内容十分广泛&#xff0…

.net core orm框架_轻量级高性能PHP框架ycroute

YCRoute目录框架介绍运行环境代码结构路由配置过滤验签控制层加载器模型层数据交互dao层(可选)Redis缓存操作数据库操作配置加载公共类加载公共函数日志模块视图层RPC 介绍 - 像调用本地函数一样调用远程函数RPC ServerRPC ClientRPC 并行调用附录 - Core_Model 中的辅助极速开…

python子图之间的距离_python与图论的桥梁——igraph

之前收集到一个关于纽约市全年出租车的数据集,于是想到,我们是不是可以用这个数据集来研究一下纽约市中各个社区之间的关联度?为了研究这个问题,就需要使用python来建立一些图论模型。igraph是python/R等语言中常用的建立图模型的…

jmeter web监听结果_jmeter使用总结

1 jmeter简介Apache JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域。 可以用于测试静态和动态资源,例如静态文件、CGI 脚本、Java 对象、数据库、FTP 服务器…

金蝶报表制作_BI报表不光好看,更好用,为什么很多人却还不知道?

要在短时间内对海量数据实现有效的数据整理清洗,快速理清数据情况,掌握数据信息,可太为难一般的数据分析报表了。但既然大数据时代给了这样的数据分析难题,自然也会给出一个有效的解决方法——BI报表。但很奇怪,明明BI…

vue可以直接进行运算么_Vue实现计算器功能

直接上代码,目前程序没有校验小数点输入是否正确情况。v-model"result"clearable>789/456*1230.-export default {name: Calculator,data () {return {result: }},methods: {sendMessage (message) {this.$message({message: message,type: warning})}…

恒驰机器人_2545台机器人,1分钟造1辆车,恒大许家印的智能造车工厂首次曝光...

车企「造车」的势头只增不减。前有奔驰造车,后有特斯拉、小鹏、蔚来等新势力造车。 在「造车」界最近迎来一位「新秀」。凭借中国最大房地产开发商的名号跨界造车。在「造车」这件事情上高举高打,从自建工厂到连发六款新车,以投入千亿的势头打…

零窗口探测怎么抓包_Linux服务器下的HTTP抓包分析

说到抓包分析,最简单的办法莫过于在客户端直接安装一个Wireshark或者Fiddler了,但是有时候由于客户端开发人员(可能是第三方)知识欠缺或者其它一些原因,无法顺利的在客户端进行抓包分析,这种情况下怎么办呢…

三维重建 几何方法 深度学习_基于深度学习的三维重建算法:MVSNet、RMVSNet、PointMVSNet、Cascade系列...

欢迎关注微信公众号“3D视觉学习笔记”,分享博士期间3D视觉学习收获MVSNet:香港科技大学的权龙教授团队的MVSNet(2018年ECCV)开启了用深度做多视图三维重建的先河。2019年,2020年又有多篇改进:RMVSNet(CVPR2019),Point…

easypoi list中的map导出_如何优雅的导出 Excel

作者:你在我家门口来源:https://juejin.im/post/5c6b6b126fb9a04a0c2f024f前言公司项目最近有一个需要:报表导出。整个系统下来,起码超过一百张报表需要导出。这个时候如何优雅的实现报表导出,释放生产力就显得很重要了…

c++ list容器获取第n给元素_Java总结之容器家族--Collection*

一、概述Collection是[收集品]的意思,这里称[容器],是java中的一个接口,位于java.util包下Collection下有三大接口:List(列表)、Set(集合)、Queue(队列)容器接口子类及方法二、List接口List:列表,顾名思义是一种表结构&#xff0c…

eclipemaven本地仓库依赖_只用一招,让你Maven依赖下载速度快如闪电

一、背景众所周知,Maven对于依赖的管理让我们程序员感觉爽的不要不要的,但是由于这货是国外出的,所以在我们从中央仓库下载依赖的时候,速度如蜗牛一般,让人不能忍,并且这也是大多数程序员都会遇到的问题。今…

和华为杯_2019全国大学生物联网设计竞赛(华为杯)拉开序幕

由教育部高等学校计算机类专业教学指导委员会主办,四川大学承办,华为协办,上海交通大学和机械工业出版社华章公司联合支持的2019年全国大学生物联网设计竞赛(华为杯)全国巡回技术讲座暨宣传活动5月9日在郑州大学拉开序幕。全国大学生物联网设…

flatform installer web 安装php_web安装平台-微软web服务器配置安装工具(Web Platform Installer)5.0 官方最新版-东坡下载...

这里为您提供的是微软官方的web服务器配置安装工具(Web Platform Installer),他可以帮助你快速的配置你所需要各种web环境。Web服务器又称为WWW服务器,它是放置一般网站的服务器。一台Web服务器上可以建立多个网站,各网站的拥有者只需要把做好的网页和相…

e.printstacktrace()为什么没有输出信息_不输入内容,能不能直接输出内容?

这段时间,我确信了一件事。想要输出内容,不需要“先输入”。直接输出,是能做到的。网络上流行一种观点:先输入,再输出!我认为这是错的。人可以不输入知识,直接输出内容。人在世界上活了这些年。…