swoole中是否可以共用1个redis或mysql连接
来源:互联网 发布:matlab r2017 mac 编辑:程序博客网 时间:2024/06/05 16:54
绝对不可以。必须每个进程单独创建Redis、MySQL、PDO连接,其他的存储客户端同样也是如此。原因是如果共用1个连接,那么返回的结果无法保证被哪个进程处理。持有连接的进程理论上都可以对这个连接进行读写,这样数据就发生错乱了。
所以在多个进程之间,一定不能共用连接
- 在swoole_server中,应当在onWorkerStart中创建连接对象
- 在swoole_process中,应当在swoole_process->start后,子进程的回调函数中创建连接对象
- 本页面所述信息对使用pcntl_fork的程序同样有效
示例
$serv = new swoole_server("0.0.0.0", 9502);//必须在onWorkerStart回调中创建redis/mysql连接$serv->on('workerstart', function($serv, $id) { $redis = new redis; $redis->connect('127.0.0.1', 6379); $serv->redis = $redis;});$serv->on('receive', function (swoole_server $serv, $fd, $from_id, $data) { $value = $serv->redis->get("key"); $serv->send($fd, "Swoole: ".$value);});$serv->start();
转自https://wiki.swoole.com/wiki/page/325.html
阅读全文
0 0
- swoole中是否可以共用1个redis或mysql连接
- 多个线程是否可以共用一个线程函数
- edit中只能输入数字、小数点(只可以1个小数点)和负号+多个edit共用一个事件
- edit中只能输入数字、小数点(只可以1个小数点)和负号+多个edit共用一个事件
- 【Swoole】用swoole简单实现MySQL连接池
- [李景山php] swoole 异步 mysql 连接
- 排列若干个字符串,判断是否首尾可以连接在一起
- Swoole中异步连接客户端/请求API
- swoole HTTP服务器中异步MySQL
- JAVA中是否可以同时存在多个MAIN入口
- 多个对话框可以共用一个定时器吗?
- 客户端或navicat可以连mysql,PHPmyadmin或php不能连接
- 客户端或navicat可以连mysql,PHPmyadmin或php不能连接
- 方法:VS中解决方案的多个项目共用一个文件 如CS文件或配置文件等
- redis连接是否需要关闭
- MongoDB 或者 redis 是否可以替代 memcached
- GRANT ALL PRIVILEGES 限制某个或所有客户端都可以连接至mysql
- MySQL 中mysql_query()来判断数据库是否连接中断
- Appium client使用
- 简单规划Android项目的包
- 4.闭包
- 空城计049来了
- Libcurl库常用接口使用说明,限速设置
- swoole中是否可以共用1个redis或mysql连接
- c++对象内存模型【内存布局】
- 数据库和jsp和前台页面
- Mybatis创建SessionFactroy的完美方式
- java设计模式(精通系列)-command
- Java项目打包相关
- struts2配置
- C++ 内存释放
- oracle数据库基础操作