- 博客(15)
- 收藏
- 关注
原创 初探Gin,封装日志中间件,根据uri按天记录
上代码 log.go package main import ( "encoding/json" "fmt" "github.com/gin-gonic/gin" "io" "os" "path" "path/filepath" "strings" "time" ) //根据时间检测目录,不存在则创建 func CreateDateDir(Path string) str...
2019-12-29 20:38:19 1149
原创 封装php-redis服务,读写分离,失败重连,单例模式,限制客户端指令集
安装和配置 安装redis服务和php-redis扩展:https://blog.csdn.net/why444216978/article/details/83659776 主从复制:https://blog.csdn.net/why444216978/article/details/100170179 封装服务类RedisService.php <?php class Red...
2019-12-26 21:59:13 612
原创 PHP的static关键字实现单例模式和享元模式
发现 最近看CI框架的源码,发现有很多方法里边用到了static变量,用于实现单例模式,之前没接触到过,今天特意研究一下。 提问 首先抛出一个问题,下面这段代码会输出什么? <?php function test($key = '', $value = '') { static $data = array(); if (!empty($key)) { ...
2019-12-26 17:10:35 539
转载 解决lrzsz乱码问题
1. 安装lrzsz brew install lrzsz #可以在等待安装的过程中执行第2步 2. 安装执行脚本 将iterm2-send-zmodem.sh和iterm2-recv-zmodem.sh保存到/usr/local/bin目录下。 执行脚本下载地址:https://pan.baidu.com/s/1hbU_8R7Xw7yyx9i78dJTUg 密码:d6kv g...
2019-12-25 13:26:30 1955
原创 php-amqplib使用实例
相关链接 composer安装地址:https://packagist.org/packages/php-amqplib/php-amqplib 搭建和配置rabbitmq:https://blog.csdn.net/why444216978/article/details/84570801 安装PHP-AMPQ:https://blog.csdn.net/why444216978/arti...
2019-12-24 20:52:56 2293
原创 这大概是最全的ElasticSearch能满足日常开发的DSL组合了
DSL: { "query": { "bool": { "must": [ { "terms": { "type": [ "hangqing_analyze", ...
2019-12-24 13:00:24 1007 1
原创 关于Golang使用channel的死锁问题
发现问题 小白一枚,最近在入门学习Golang,在学到channel时,发现总会遇到死锁的问题: fatal error: all goroutines are asleep - deadlock! 原理解读 通过查找相关资料发现,channel本身是用于不同协程间通信的,一般一个协程作为生产者,另一个作为消费者,遵循下面两个原则: 当上一次生产到channel的数据未被消费时,生产者继...
2019-12-22 19:15:18 1055
原创 关于MySQL存储IP地址引发的思考
产生思考 今天在看《高性能MySQL》时,有这么一句话,IP地址实际上是32位无符号整数,所以应该用无符号整数存储IP地址,MySQL提供了INET_ATON()和INET_NTOA()函数在这两种表示方法之间的转换。这样存的好处有两点: 节省空间,32位无符号整数,即INT类型(不清楚MySQL各种类型的点这里移步),只占4个字节。 通过where比较,可以方便筛选某个地址...
2019-12-16 20:53:19 305
原创 MySQL各类存储类型对比
整型 数据类型 存储大小 十进制范围(有无符号) TINYINT 8位,1字节 有:-128~127 无:0~255 SMALLINT 16位,2字节 有:-32768~32767 无:0~65535 MEDIUMINT 24位,3字节 有:-8388608~8388607 ...
2019-12-15 23:38:52 615
原创 Lumen使用tideways加中间件记录慢接口以及对应接口执行的SQL
先上代码: <?php namespace App\Http\Middlewares; use Closure; use Illuminate\Support\Facades\DB; class ProfilerMiddleware { public function handle($request, Closure $next) { $extens...
2019-12-07 17:43:26 552
原创 依赖倒置原则应用,Lumen基于PHPMailer封装邮件服务
EmailInterface <?php namespace App\Services\Email; interface EmailInterface { public function send($email, $subject, $content, $attachments = []); } PhpMailerService <?php namespace A...
2019-12-06 19:11:09 398
原创 PHP不允许注册的进程信号
代码 <?php pcntl_async_signals(true); pcntl_signal(SIGHUP, function(){ echo '1'; }); pcntl_signal(SIGINT, function(){ echo '2'; }); pcntl_signal(SIGQUIT, function(){ ...
2019-12-04 18:34:36 525
原创 使用strace追踪php-fpm的系统调用
查看每个系统函数调用耗时占比 ps -ef|grep php-fpm|awk '{print " -cp " $2 " -o /tmp/strace.log"}' | xargs strace % time seconds usecs/call calls errors syscall ------ ----------- ----------- --------...
2019-12-03 17:32:07 1107
原创 理解Laravel的中间件
<?php namespace App\Http\Middlewares; use Closure; use Illuminate\Support\Facades\Log; class TestMiddleware { public function handle($request, Closure $next) { Log::info($r...
2019-12-03 13:11:02 694
原创 使用Tideways和Toolkit对PHP代码进行性能分析
安装Tideways git clone https://github.com/tideways/php-xhprof-extension.git cd php-profiler-extension phpize ./configure make && make install php.ini加入 extension=tideways.so service php-fpm...
2019-12-03 12:39:17 655
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人