自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(29)
  • 收藏
  • 关注

原创 TP6+SWOOLE开发规范

1.禁用app()方法 因为并发会拿不对当前容器2.禁用input()方法,最多允许controlle之前的阶段使用 并发场景,拿不到正确参数。3.使用go()必须使用标准模版传送门 协程使用统一标准4.禁止修改静态变量,静态变量只读不可更新 因为全局、静态变量内存常驻。多个请求会共享到静态变量,数据错乱5.使用context里面的变量 秉承自己的请求用自己的运行时变量原则 每个请求线程有自己的上下文context空间,请求生命周期都要用自己context...

2021-05-25 17:10:27 798

原创 swoole,协程模板

由于协程的不受控制性,业务开发中使用到协程,需要统一规范。经项目组成员达成一致,且经过多次测试使用,采用如下的一套规范代码。严格设置phpstom模版代码:复制粘贴以下模版代码:$chan = new \app\common\util\MmChannel(1);//基本原则:管道长度 = go()协程数量$CoroutineContext = get_thread_context();go(function () use ($CoroutineContext,$..

2021-05-25 17:08:57 362

原创 Tp6+Swoole搭建,测试协程与异步差距

由于部门的一个项目,用到了TP6+Swoole的方式重构,想偷偷师,所以自己也搭一个玩玩

2021-03-16 14:56:08 4344 2

转载 PHP安装性能分析扩展-xhprof

1、下载源码包 https://github.com/longxinH/xhprof (wget https://github.com/longxinH/xhprof/archive/master.zip) 下面截图那个是官网的,已经没有维护了,不行了。  2、编译    3、./configure --with-php-config=/usr/local/php/bin/php-config  4、make && make install  5、...

2021-03-05 16:08:08 126

原创 后端知识整理

cookie和session的区别和联系 区别:cookie存在于浏览器中,可存放内容较少,易被篡改,用户可以禁用cookie;session存在于服务器中,可以文件,数据库,缓存的形式存在。联系:sessionId存放于cookie中,所以禁用cookie,session也不能使用了,但可以通过重写url的方式传递cookie clone的特性和表现 protect $name = 'abc'; /** * clone的特性 */ ...

2020-07-22 09:49:16 133

原创 think-queue消息队列实践

使用Tp5自带的think-queue+Redis实现消息队列

2020-06-12 18:13:37 1460

原创 Swoole+Redis实现异步队列,处理高并发场景

Swoole+Redis编写高并发异步队列

2020-05-13 11:56:32 3184

原创 PHP便利方法整理

PHP便利方法整合(个人使用)

2020-05-06 15:18:13 223

原创 docker容器下安装各种扩展

基于解耦的理念,一个容器只做一件事情,我不想在php容器里既安装mysql,又安装redis的,所以,PHP,mysql,redis应该是各自都一个容器,如下所示我们要使用他们,只需要把他们连接起来即可,连接简单,但是php需要装各种各样的扩展来支持各种应用,今天我们就是来做一个快速安装扩展的笔记:pecl命令接下来以安装redis扩展为例,现在容器内输入下面的命令,即可下载并安装...

2020-04-15 18:15:05 941

原创 PHP爬取微信公众号文章(可做为扩展类直接使用)

开门见山的说,我是在GitHub上拿的代码,但由与那个项目年代比较久远了,公众号的一些规则变了,不能用了,所以我就改了部分代码,达到直接用的地步。功能:根据微信公众号链接,爬取文章的文字和图片(下载到本地),以html形式保存。直接贴代码,就一个文件,可以直接用<?phpnamespace WxCrawler;/** * 微信公众号文章爬取类 */class Wx...

2020-04-10 13:58:31 3499 6

转载 基于Docker的Mysql主从复制搭建

为什么基于Docker搭建?资源有限 虚拟机搭建对机器配置有要求,并且安装mysql步骤繁琐 一台机器上可以运行多个Docker容器 Docker容器之间相互独立,有独立ip,互不冲突 Docker使用步骤简便,启动容器在秒级别利用Docker搭建主从服务器首先拉取docker镜像,我们这里使用5.7版本的mysql:docker pull mysql:5.7然后使用此镜...

2020-03-10 14:14:12 119

原创 Xdebug+PhpStorm+Chrome搭建调试环境

Xdebug+PhpStorm+Chrome搭建调试环境首先,我们都知道,phpstorm这个IDE支持很多第三方软件的接入,包括Git,SVN,我们今天要接入的就是Xdebug。1、首先下载Xdebug的PHP扩展并安装。Xdebug扩展下载,选择自己对应的PHP版本下载就行2、接下来,我们来安装chrome的插件。Xdebu...

2020-02-26 12:26:59 559

原创 Mysql共享锁、排他锁、悲观锁、乐观锁的区别

一、相关名词|--表级锁(锁定整个表)|--页级锁(锁定一页)|--行级锁(锁定一行)|--共享锁(S锁,MyISAM 叫做读锁)|--排他锁(X锁,MyISAM 叫做写锁)|--悲观锁(抽象性,不真实存在这个锁)|--乐观锁(抽象性,不真实存在这个锁)其中,共享锁和拍他所都是悲观锁,乐观锁不存在于mysql中,只是一种代码的逻辑实现,所以mysql的锁都是悲...

2020-02-21 14:34:04 1177

原创 session状态的理解及表现。

一、官方session_status() 返回值为:PHP_SESSION_DISABLED会话是被禁用的。0 PHP_SESSION_NONE会话是启用的,但不存在当前会话。1 PHP_SESSION_ACTIVE会话是启用的,而且存在当前会话。2有以下几种情况,当status为1时,打印$_SESSION,会提示变量不存在。 var_dump($_SESSION)...

2020-02-20 15:24:14 1262

转载 MySQL的索引是怎么加速查询的?

MySQL的索引是怎么加速查询的?MySQL 的索引长什么样子?索引到底是怎么加速查询的?事实上,在你还没有执行create index语句的时候,MySQL 就已经创建索引了。让我们从建表开始吧。聚簇索引执行建表语句:CREATE TABLE `student` ( `id` BIGINT UNSIGNED AUTO_INCREMENT NOT NUL...

2020-02-20 09:56:58 1116

原创 TP5使用paginate分页后数据高效处理方法

tp5使用paginate分页获取数据对象之后 如何对对象进行数据添加官方文档上写的是使用each方法(5.09版本及以上才适用)$list = Db::name('user')->where('status',1)->paginate()->each(function($item, $key){ $item['nickname'] = 'think'; ...

2020-01-15 18:08:33 3445 2

原创 Docker搭建Nginx+swoole环境

又是老朋友,Docker的搭建项目,还是并发问题,我们都知道,PHP有一款很好用的扩展,swoole,swoole可以集成到PHP开发环境中,我们只需要安装到PHP扩展里就行,详细步骤看我之前的文章Docker下php容器安装swoole扩展。好了,那我们这次需要用到2个容器,一个普通的Nginx容器,另一个则是已经集成好Swoole的PHP-fpm容器,由于时间关系,我已经把集成好Swool...

2019-11-18 14:01:27 1607

原创 测试Redis的原子性及实现Redis的锁

这几天都在学习Redis的相关知识,发现了一个问题,Redis虽然是单线程的,但是他有一个特点:IO多路复用,这样的特点使2个请求同时对同一key进行操作时,会出现2个请求同时拿到该key的值,进行了重复的操作,在秒杀中的体现为超卖;具体代码为: public function redis1(){ $redis = new \Redis(); $re...

2019-11-13 16:07:27 1257

原创 Docker下php容器安装swoole扩展

本人是linux菜鸟,每次命令都是上网搜才知道的,本文章直供记录自己的环境下,安装swoole的过程。在docker的php-fpm容器里,php.ini是没有的,要自己创建,目录在/usr/local/etc/php,有的话只需要在最后添加一行extension=swoole.so没有则可以使用docker命令,把php.ini文件复制到这个目录下,docker cp $PWD...

2019-07-19 15:45:08 8414 1

原创 ThinkPHP5坑人笔记(对比Tp3.2)

1、关于数据库连接的问题;$userModel = Db::name('user'); //这种方法连接,是以类的方式,不会实例化对象Db::name('card');$userModel->find(); //查找到的数据是card表的数据,因为第二行已经把表名更改了想要实例化对象,可以直接db('user')或者创建UserModel类,然...

2019-06-11 16:06:11 491

原创 PHP递归获取内联表所有子列表代码

表结构如下:pid关联本表的id,以此构成内联表,常见的应用场景有:地区表、部门表等遍历部门Id为1的所有子部门信息;//递归获取子列表 public function getSubList($id){ if(!$sub_list = M('department')->where(array('pid'=>$id))->select()) ...

2019-04-23 02:19:59 385

原创 Docke搭建Nginx+php-fpm+https

先创建一个共有的网络docker network create -d bridge my-net创建php-fpm容器docker run -d -it --rm --name my-php --network my-net -v/root/docker/app/test:/usr/share/nginx/html php:7.1-fpm要注意的是PHP的容器也要挂在文件目录-...

2019-04-12 20:18:03 506

原创 Docker下配置Nginx反向代理,搭建集群服务器

之前一直想搞一搞集群服务器,但碍于集群服务器要多个服务器,我就只有一个云服务器,理论上是集群不了,但Docker很好的解决了这个问题,有了docker,一个端口就可以成为一个服务器,可以顺手实验自己的集群测试。1.先创建2个nginx的容器,当做web服务器,具体方法可以看我上一篇docker笔记docker小笔记。2.分别测试两个web服务器运行情况,显示的内容要不一样,这样才可看出...

2018-11-09 15:12:47 1107

原创 ThinkPHP整合composer使用demo

使用composer前请安装好composer,如果未安装,可以看这篇文章 Windows下安装Composer1、由于我们已经设置了全局引用,所以,在TP根目录里面创建一个composer.json文件文件内容为:{ "require": { "monolog/monolog": "1.0.*" }}该文件含义就是引入依赖包,'monolog/...

2018-09-29 11:50:53 3122

原创 docker小笔记

镜像:richarvey/nginx-php-fpm(PHP-NGINX集成镜像)nginx服务器的配置文件目录:cd /etc/nginxhtml目录:cd /var/www/html挂载本地目录-v /root/docker/nginx/nginx.conf:/etc/nginx/nginx.conf容器连接(最新文档建议使用网络连接容器)--li...

2018-08-16 18:21:13 301

原创 php+redis+TP处理并发

前两天想自己研究PHP的并发问题,看到很多人都说用redis的队列处理并发很好,所以自己也去研究了一下,下面用实际项目记录一下自己的成果。基本思路是所有操作用过redis的队列和集合处理并发1.用户抢购队列(List),user_list2.商品队列(List),goods_list3.订单信息(Hash集合),order_info4.购买成功用户(Set集合),bou

2017-10-27 14:32:02 5067 4

原创 windows下安装composer,纯手工,绝对有效

今天看了很多composer,就是为了装laravel,自己也装了两次,网上的教程虽然有很多,但绝大多数都是抄中国镜像(http://www.phpcomposer.com/)的,我自己也看了很多遍,可能是自己太笨,不好理解,装了很久才成功。现在为了造福大家,写个简单易懂,但绝对有效的教程,说实话,这东西还是有点难装的。1.来这个网址下载composer.phar文件,https://getc...

2017-05-11 00:34:57 2370

转载 sql的优化

网上关于SQL优化的教程很多,但是比较杂乱。近日有空整理了一下,写出来跟大家分享一下,其中有错误和不足的地方,还请大家纠正补充。这篇文章我花费了大量的时间查找资料、修改、排版,希望大家阅读之后,感觉好的话推荐给更多的人,让更多的人看到、纠正以及补充。1.对查询进行优化,要尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。2.应尽量避免在

2017-05-05 15:31:08 231

原创 ThinkPHP3.2结合jq实现图片的异步上传

thinkPHP3.2+jq插件,实现多图片异步上传。

2017-05-05 15:14:06 1796

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除