自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 lnmp 502错误分析

1概述LNMP架构下 发生502 bad gateway 一般有两种情况1,没有可用的php-fpm 没有可用的worker进程2,脚本执行时间超过了 php-fpm request_terminate_timeout 设置的值 这时 worker进程会被kill 或者request_terminate_timeout 设置的值过大 导致整个worker进程长时间工作不能释放 没...

2019-10-10 17:12:40 622

原创 mysql-缓冲池

缓冲池mysql使用 innodb作为存储引擎的表来说 数据都是以页的形式存储在表空间里 我们知道磁盘访问速度很慢,所以为了提高速度 当访问某个页上面的数据时 先将这个页加载到内存中 缓存起来就可以对数据进行读写操作了 下次再次访 就不需要再次去磁盘里找了 提高效率 这个内存就是buffer pool 缓存池Buffer pool组成这个是innodb整体结构 ...

2020-01-10 11:36:00 1422

原创 laravel广播 源码分析

概述上篇文章写的是 在laravel-vue前后分离的项目中 使用laravel-echo-serve 的服务来实现websocket 通信的,接下来就分析larave中的广播功能的源码分析大概流程是当触发了 事件之后 发现是广播事件(实现了ShouldBroadcast这个接口) 然后 该广播事件push到队列中. 队列消费者 执行该事件 通过redis publish 对 redis ...

2019-12-13 16:39:09 229

原创 Laravel-echo-server-jwt-vue

一:场景目前的项目中(laravel+vue 前后分离)有一个入金充值的功能,用户点击入金按钮 请求第三方接口,第三方将处理结果返回给指定的回调地址前台要根据处理结果跳转到不同的页面,可以使用轮询 订单状态,然而想通过websocket方式来处理. 前后台通过laravel-echo-server 建立websocket连接.后台利用laravel的广播功能 如果第三方返回结果 那么将结果...

2019-12-12 18:14:07 740

原创 Laravel 缓存源码分析

在laravel中使用缓存一般是 use Illuminate\Support\Facades\Cache; 缓存门面来调用缓存方法 get set 等等方法比如使用 Cache::get(); 进入Cache Faced类里发现Cache 继承了Illuminate\Support\Facades 当调用get方法时就调用了 Facede类中的魔术方法__callSt...

2019-11-12 14:26:38 400

原创 redis过期键删除策略

1三种过期回收策略1.1 定时删除定时删除:在给键设置过期时间的同时,创建一个定时器,让定时器在键过期时,立刻执行对键删除的操作这种方式 对内存友好,对cpu不友好,因为通过定时器删除过期键,可以保证数据库里没有过期的键.同时带来的坏处就是牺牲了cpu,如果过期键比较多的情况下,删除过期键可能占用相当一部分的cup.1.2 惰性删除惰性删除: 是在去除键的时候才对键进行过期检...

2019-11-08 15:14:16 133

原创 mysql redolog 和binlog的理解

概念1,redolog 是记录页修改的日志,比如 再更新一个字段的操作中 就会记录哪个页 对哪个字段的修改 属于物理日志redolog 是innodb引擎特有的2,binlog 记录了更新的语句 是逻辑日志 是server层实现的分析一条更新sql语句的执行过程盗用 丁奇大神的一张图1. 执行器先找引擎取 ID=2 这一行。ID 是主键,引擎直接用树搜索找到这一...

2019-10-17 15:21:32 1721

原创 一条SQL语句执行得很慢的原因有哪些?

面试的时候肯定有被遇到 sql语句执行慢的问题吧一 ,分两种情况讨论1,之前执行正常 ,突然就慢了2,一直就很慢二,分析原因之前正常执行突然慢了 可能有以下几种情况1,遇到锁了 请求的资源正好被其他的事务加锁了 所以在等锁释放的过程导致执行慢2,数据库在刷新脏页:mysql为了提高写的性能 会将修改的操作写入到内存中,当插入一条新数据或者更新数据 会在内存中将对应...

2019-10-16 12:24:34 350

原创 php 实现 select系统调用

IO多路复用技术 这个功能被广泛使用,nginx redis nodejs 都在使用,多路是指多个客户端连接socket 复用 就是指复用小数几个进程举个例子来理解IO多路复用教室里有10个学生和1个老师,孩子不停的向老师提问,一个老师忙不过来了 学校只能给每位学生配一位老师,如果学生比作为客户端,教师当做成与客户端进行数据交互的服务器进程,则该教室的运营方式为多进程服务端的方式有...

2019-10-14 16:45:23 876

原创 nginx php-fpm

nginx将http请求映射为对应的fastcgi请求, nginx的fastcgi模块提供了fastcgi_params指令来处理这些映射关系,将nginx中的变量翻译成php中能够理解的变量然后就是fastcgi_pass指令,这个指令用于指定fpm进程监听的地址,nginx会把所有php请求翻译成fastcgi请求后再发送到这个地址将所有以.php结尾的请求都交给fast...

2019-10-09 18:17:23 149

原创 nginx 配置文件配置

nginx 分为三个模块核心模块 : nginx最基本最核心的服务,例如 进程管理,权限控制,日志记录http模块第三方模块nginx配置文件实例#定义 nginx 运行的用户和用户组user www www;#nginx 进程数,建议设置为等于 CPU 总核心数。worker_processes 8;#nginx 默认没有开启利用多核 CPU, 通过增加 ...

2019-10-09 12:13:13 115

原创 使用xtrabackup 热备份mysql

1,安装ubuntu16 安装xtrabackup1,sudo apt-key adv --keyserver keys.gnupg.net --recv-keys 1C4CBDCDCD2EFD2A2,sudo wget https://repo.percona.com/apt/percona-release_0.1-4.$(lsb_release -sc)_all.deb...

2019-09-27 12:50:41 342

原创 laravel 队列的使用

1,概述项目中有一些操作比较好事,例如发送邮件 推送app,视频转码,日志存储等,如果使用同步方式的话 那么系统性能大大降低所有我们可以使用异步进行处理这些任务.可以使用laravel 的队列功能2,Laravel队列的配置2.1 . env 设置QUEUE_DRIVER=redis 驱动选择 可以为 database sqs redis 我们这里已reids为例...

2019-09-26 18:23:21 999

原创 https加密机制

1,HTTPS概述https就是在安全的传输层上发送的http .https没有将未加密的http报文发送给tcp,而是在将报文发送给tcp之前,先将其发送给了一个安全层,对齐进行加密如上图所示SSL位于应用和传输层之间,他可以为任何基于tcp可靠连接的应用层协议提供安全性保证2,SSL协议基本运行过程2.1 SSL协议本身分为两层:1,上层为SSL握手协议(SSL han...

2019-09-23 17:41:56 542

原创 查看 php-fpm 内存占用的几个命令

查看服务器内容使用情况一般使用top 实时显示系统中各个进程的资源占用状况及总体状况free 查看内存使用情况,包括物理内存和虚拟内存glances 监视 CPU,平均负载,内存,网络流量,磁盘 I/O,其他处理器 和 文件系统 空间的利用情况atop显示的是各种系统资源(CPU, memory, network, I/O, kernel)的综合,并且在高负载的情况下进行了...

2019-09-20 16:19:30 1207

原创 docker 简单搭建lnmp环境

1.环境ubuntu16 vscode docker docker compose2.步骤2.1 拉取nginx镜像docker pull nginx启动容器docker run -rm --name my-nginx -p 8080:80 nginx--rm 容器停止后可以自动清理容器和相关文件系统,方便调试,避免每次都手动删除然后重启--name 为容器命名...

2019-09-10 18:13:34 323

原创 laravel 延时队列 处理订单状态

场景:订单下单成功之后 半小时之后如果没有付款 那么就把订单状态改为取消状态可以使用laravel 的延时队列修改 config/queue.php'default' => env('QUEUE_CONNECTION', 'redis'),使用redis的 有序集合php artisan make:job DelayOrder 创建一个延时队列 就会在 app/Jo...

2019-08-20 11:26:09 1739

原创 laravel 中间件 管道

管道模式 是将复杂的处理流程分解成多个独立的子任务Laravel中的管道体现在中间件中,主要是通过 array_reduce这个函数来实现的<?php$arr = [1,2,3];$r = array_reduce($arr,'sum');function sum($carry,$pipe){ $carry += $pipe; return $car...

2019-08-13 17:31:37 241

原创 go语言 切片的理解

func main(){ s := []int{5} s = append(s,7) s = append(s,9) x := append(s,11) y := append(s,12) fmt.Prinln(s,x,y)}输出的结果是 [5,7,9] [5,7,9,12] [5,7,9,12]x和y 的值竟然一样了把代码变一...

2019-07-10 12:34:22 484

原创 laravel 生命周期

代码:<?php//laravel 启动时间define('LARAVEL_START', microtime(true));/*|--------------------------------------------------------------------------| Register The Auto Loader 加载项目依赖|*/re...

2019-06-28 11:50:02 351

原创 ubuntu redis集群配置

1,安装redis5.0  1.1 wget http://download.redis.io/releases/redis-5.0.0.tar.gz  1.2 tar -zxvf redis-5.0.0.tar.gz cd redis-5*   1.3 编译 make     1.4 启动 redis-server        1.5 启动客户端 redis-cli  ...

2019-01-15 16:22:01 851

原创 mysql 索引的理解

1,索引 在数据库里也可以叫作‘键’ 主键,唯一,普通索引。存储引擎可以通过索引来快速查到记录的一种数据结构,当表中的数据量越来越大的时候,索引的作用越发的重要 2,考虑到磁盘IO是非常高昂的操作,计算机操作系统做了一些优化,当一次IO时,不光把当前磁盘地址的数据,而是把相邻的数据也都读取到内存缓冲区内,因为局部预读性原理告诉我们,当计算机访问一个地址的数据的时候,与其相邻的数据也会很快被...

2019-01-14 16:17:16 807

原创 ubuntu18 安装lnmp

1,安装nginxsudo apt-get install nginx2,mysql安装3,PHP7.2.5安装sudo apt-get install php7.2 php7.2-fpm php7.2-mysql4,配置Nginx解析PHP 4.1 修改nginx配置文件 sudo vim /etc/nginx/sites-available/default...

2018-12-25 17:33:42 546 3

原创 nodejs 上传附件到亚马逊s3

最近刚接手一个nodejs项目 前后端分离 前台angularjs1.5 后端node 项目里的附件上传都是上传到亚马逊s3云存储使用1,安装aws sdknpm install aws-sdk2,配置参数var AWS = require('aws-sdk');AWS.config.loadFromPath('./config/config.json');var s3...

2018-12-25 10:36:11 2778 2

空空如也

空空如也

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

TA关注的人

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