自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 postman脚本执行顺序

一. 单一请求中脚本的执行顺序 单一请求中,我们可以设置pre-request, test两个脚本。 其执行顺序如下图所示: [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NsLMNM95-1582258399109)(https://assets.postman....

2020-02-21 12:15:36

阅读数 18

评论数 0

原创 php7.4 preload(预加载)

1. 什么是preload 什么是preload? Preloading in PHP 7.4中有一句话总结的简单到位: Opcache, but more! 那么preload比opcache多做了哪些呢?为了更好的说明问题,我们先来看下面这张opcache的工作原理图。 图中不难看出,对于执...

2019-12-12 10:12:14

阅读数 144

评论数 0

原创 git tag

1. tag是什么 如果用过svn,你一定对tag不陌生。通常版本上线前,我们会对相应的代码打一个tag,将其封存起来,就如同一个代码快照。 2. 常用操作 2.1 创建tag git tag -a <tag名称> <commit hash> -m <备注信息>...

2019-11-15 18:46:09

阅读数 48

评论数 0

原创 yapi中mock jsonp接口响应的方法

1. 问题 yapi具有强大的mock能力,但是它是否可以mock jsonp请求呢? 2. 尝试 2.1 yapi端的准备 普通的json schema和期望方式,都只能返回json,无法在返回中增加callback函数名。我们尝试使用“高级mock”中的“脚本”完成这个功能。如下图所示,注意“...

2019-04-08 19:02:50

阅读数 448

评论数 0

原创 phpunit中执行指定测试case的方法

一. 问题 一个测试文件中,可能包含多个case,如何只执行其中的某个或某几个case呢? 比如下面的这段测试代码(demotest.php),是否可以只执行针对FuncA的两个测试~testFuncA_1,testFuncA_2呢? <?php use PHPUnit\Framework\...

2019-03-20 16:36:20

阅读数 459

评论数 0

原创 post提交数据的常见方式及php对应的接收方法

post提交数据的方式,主要体现在http协议头上的Content-Type字段,不同的Content-Type对应不同的http请求体,与之相应的php接收数据方法也不同。 1.application/x-www-form-urlencoded 1.1发送 html中的form表单,如果不设置e...

2019-02-21 18:34:47

阅读数 750

评论数 0

原创 yapi中的高级mock--期望

1. 功能 测试时,经常需要根据不同的请求参数和IP返回不同的HTTP 状态码、HTTP头、JSON数据等。期望就是根据设置的请求过滤规则返回期望数据。 2. 为接口添加期望 首先选中一个接口,点击“高级Mock”,再点击“添加期望”,可以看到类似下图的弹出窗口。 所填写的信息分为两部分:基本...

2019-02-02 17:31:19

阅读数 2851

评论数 0

原创 yapi中使用json-schema mock数据

1. 基本的json-schema mock 首先,我们建立一个简单的json-schema,如下图所示: 该schema定义了一个返回结构,包括两个字段,data为string类型,code为integer类型。 点击“预览”,可以看到类似下面的mock数据: { "data&q...

2019-01-31 17:57:14

阅读数 2135

评论数 0

原创 git导出代码的方法~archive

问题 如果你用过svn,一定知道svn export,可以用来从代码库中导出一份干净的代码(没有.svn等)。git是否有类似功能呢? git archieve 可以用于将库中代码打包。 1. 基本用法: git archive --format tar.gz --output "./o...

2019-01-25 17:49:47

阅读数 4101

评论数 0

原创 《代码整洁之道--程序员的职业素养》(读书笔记)

Robert C.Martin 著 第1章 专业主义 1.1 清楚你要什么 专业主义:它不但象征着荣誉与骄傲,而且明确意味着责任义务与担当。 1.3 首先,不行损害之事 1.3.1 不要破坏软件功能 写一些随时都能运行的单元测试,然后尽可能多地执行这些测试。测试覆盖率尽可能为100%。...

2019-01-14 15:36:17

阅读数 221

评论数 0

原创 分析redis key大小的几种方法

当redis被用作缓存时,有时我们希望了解key的大小分布,或者想知道哪些key占的空间比较大。本文提供了几种方法。 一. bigKeys 这是redis-cli自带的一个命令。对整个redis进行扫描,寻找较大的key。例: redis-cli -h b.redis -p 1959 --bigk...

2019-01-08 10:33:17

阅读数 13592

评论数 1

翻译 Redis的OBJECT命令(翻译)

查看原文请点击这里 OBJECT subcommand [arguments [arguments …]] 2.2.3及以上版本可用 时间复杂度:O(1). OBJECT命令允许你从内部查看给定的Redis对象。它对查错很有帮助,同时也让你了解某个key使用了何种编码类型,这对节省存储空间...

2018-12-29 17:21:11

阅读数 631

评论数 0

原创 使用curl控制下载速度

1. 速度控制 1.1 php代码方式 function http_request($URI) { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $URI); curl_setopt($ch, CURLOPT_R...

2018-12-05 17:11:45

阅读数 1285

评论数 0

原创 浏量监控工具iftop简易使用说明

一. 用途 实时流量监控工具。 二. 源码安装 wget http://www.ex-parrot.com/~pdw/iftop/download/iftop-0.17.tar.gz tar xvzf iftop-0.17.tar.gz cd iftop-0.17 ./configu...

2018-12-05 11:06:21

阅读数 145

评论数 0

原创 跨域ajax请求中的cookie传输问题

CORS是一个W3C标准,全称是&quot;跨域资源共享&quot;(Cross-origin resource sharing)。 它允许浏览器向跨源服务器发出XMLHttpRequest请求,从而克服了AJAX只能同源使用的限制。 对CORS协议不了解的同学,可以猛击这里。...

2018-10-31 19:25:47

阅读数 400

评论数 0

原创 php setcookie对cookie值进行urlencode的问题及解决

1. 问题 有如下代码 setcookie.php class Cookie{ protected $_key = &quot;person&quot;; protected $_val = &quot;name:ball,sex:male&...

2018-10-25 18:58:56

阅读数 923

评论数 0

原创 ES6中的export与import入门

1. 简介 ES6在语言规格的层面上,实现了模块功能,而且实现得相当简单,完全可以取代现有的CommonJS和AMD规范,成为浏览器和服务器通用的模块解决方案。 ES6 模块不是对象,而是通过export命令显式指定输出的代码,再通过import命令输入。 2. 导入导出 不同的导出方...

2018-06-28 14:30:00

阅读数 224

评论数 0

原创 rollup快速入门

1. rollup是什么 Rollup 是一个 JavaScript 模块打包器,可以将小块代码编译成大块复杂的代码。 2. 安装 npm install --global rollup 3. 使用示例 有如下代码,Person.js是独立模块,我们在main.js中使用它。...

2018-06-27 17:22:06

阅读数 318

评论数 0

原创 ab发送cookie和post请求的方法

ab是apache自带的压力测试工具,近期需要压测一个接口,涉及使用post请求,并在其中带cookie。方法总结如下: 1. 发送cookie 方法1 -C key1=value1;key2=value2... 例: ab -n 1 -C "name=ball...

2018-05-30 17:49:24

阅读数 2389

评论数 0

原创 使用ffmpeg增删水印

一.获取基本信息 ffmpeg -i 文件名 输出类似: Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'a.mp4': Metadata: major_brand : isom minor_version...

2018-02-24 18:51:06

阅读数 5820

评论数 8

原创 linux下编译安装ffmpeg

安装步骤 1. 安装yasm wget http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz tar zxvf yasm-1.3.0.tar.gz cd yasm-1.3.0 ./configure --pref...

2018-02-13 18:08:59

阅读数 854

评论数 0

原创 redis的MULTI与PIPELINE

对redis的multi和pipeline机制做更详细的分析对比

2018-01-16 14:24:45

阅读数 4294

评论数 2

原创 不重新编译PHP,单独添加扩展模块的方法

问题php自身提供了很多扩展,比如curl,gmp, mbstring等等。我们在编译安装php时未必安装了所有扩展。那么在安装完php后,如果想单独安装某个php自身的扩展怎么办呢?我们以curl扩展模块的安装为例说明如何单独添加扩展。步骤1.进入php源码的扩展目录。本例中我的源码对应目录如下...

2018-01-09 18:10:31

阅读数 5651

评论数 0

原创 使用tideways绘制php callgraph(profiling)

零. 概述tideways是一款付费的在线应用,其诸多强大功能可见这里。 你可以在官网上注册,并免费使用一个月。如果想继续使用,又不想付费怎么办?答:换个邮箱!本文主要讲述如何用tideways绘制php callgraph(profiling)。 从callgraph上,你可以很清楚的看到:...

2017-11-10 14:44:54

阅读数 1277

评论数 0

翻译 php中self与static的区别

原文链接,猛击这里。php中self与static的区别通过一些示例,我们可以很容易看出self和static的区别。假定我们有class Car – 它有两个方法,model和getModel。注意,这里我们使用了关键字self。class Car { public static fun...

2017-08-18 14:26:34

阅读数 3438

评论数 0

原创 php中array_merge与array相加的区别

一.array_merge1. 数组键值为字串的情况(hash数组)键名相同的情况下,后出现的元素覆盖先出现的。示例<?php $ary1 = array('name'=>'test', 'age'=>18); $ary...

2017-06-13 11:43:25

阅读数 825

评论数 0

原创 使用phpredis批量向sort set中加入元素

问题zAdd, 按文档所述,可以向sort set中加入一个或多个元素。加入多个元素的方式如下:$redis->zAdd('key', score1, 'val1', score2, 'val2', ...);这种api的形式在实际...

2017-03-25 11:40:07

阅读数 3911

评论数 0

原创 shell数组小结

给数组赋值的几种方式 array_nmae=(v0 v1 v2…); 例: arr=(1 2 3); 或者 arr=( 1 2 3 );注意:等号两边不能有空格2.array_name[i]=v;例: arr[0]=1; arr[1]=2; arr[2]=3;读取数组1.获...

2017-02-21 19:11:44

阅读数 1447

评论数 0

原创 使用strace跟踪多进程程序

简介strace可以跟踪到一个进程产生的系统调用,包括参数,返回值,执行消耗的时间。常用参数 -p 跟踪指定的进程 -o filename 默认strace将结果输出到stdout。通过-o可以将输出写入到filename文件中 -ff 常与-o选项一起使用,不同进程(子进程)产生的系统调用输出到...

2017-02-14 15:38:29

阅读数 2791

评论数 0

原创 使用swoole实现生产者消费者模型(2)

之前实现过一个swoole生产者消费者模型,有兴趣可以参看这里,这版代码做了如下修改: 1. 生产者放到单独子进程当中,而非像之前那样在主( 父)进程中完成。 虽然功能上没有什么变化,但这样看起来结构更合理一些。 2. 主进程除了生成不同子进程外,还做了一件事:回收僵尸进程。如果程序是长期运行...

2017-02-06 18:24:58

阅读数 1449

评论数 0

翻译 mysql性能分析工具show profile(翻译)

SHOW PROFILE以及SHOW PROFILES语句可以显示当前会话过程中执行的sql语句的性能(profiling)信息。

2017-01-12 18:40:32

阅读数 3856

评论数 0

原创 使用swoole的Process实现生产者消费者模型

1. 实现了生产者消费者模型,一个生产者向任务队列写数据,N个消费者取数据做处理。 2. 数据处理完后生产者与消费者自动退出 3. 在消费者意外挂掉的情况下,允许单独运行消费者继续处理之前队列中的任务

2016-12-30 10:45:03

阅读数 3341

评论数 1

原创 swoole进程间通信之消息队列

1. 相关函数 swoole_process->useQueue swoole_process->statQueue swoole_process->freeQueue swoole_process->push swoole_process->pop 2. 与消息队列...

2016-12-26 18:10:42

阅读数 3199

评论数 0

原创 从源码说swoole进程间通信原理

本文件假设你有c++和多进程编程的基础知识。 swoole进程间通信可以使用套接字(swoole_process::write/ swoole_process::read),也可以使用消息队列(push/pop)。本文的只讲述套接字通信部分。 本文使用的swoole源码为1.9版本 1. swoo...

2016-12-23 18:20:27

阅读数 4002

评论数 0

原创 关于php匿名函数中的use

匿名函数中的use,其作用就是从父作用域继承变量。 下例是最常见的用法,如果不使用use,函数中将找不到变量$msg。<?php $msg = [1,2,3]; $func = function()use($msg){ print_r($msg); }; $func(); ?&g...

2016-12-15 11:33:35

阅读数 7234

评论数 0

原创 从一个bug说jquery的事件注册和触发机制

问题描述同一域名下有两个页面parent.html,child.html。parent.html中通过iframe嵌入child.html。父页面触发自定义事件,子页面对其进行响应。 两页面代码如下: 1.parent.html<body> 我是父页面 <if...

2016-11-09 16:54:52

阅读数 902

评论数 0

原创 smarty的replace陷阱

欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦: Markdown和扩展Markdown简洁的语法 代码块高亮 图片链接和图片上传 LaTex数学公式 UML序列图和流程图 离线写博客 导入导出Markdown文件 丰富...

2016-09-28 11:03:01

阅读数 2310

评论数 0

原创 php中使用redis HyperLogLogs

问题前些日子学习了reids的HyperLogLogs(不熟悉此功能的同学可参看这里),想用php试试。我在php中用的redis扩展是phpredis,查了一下api,居然没有HyperLogLogs相关的api(pfadd, pfcount等) -_-|||曙光总不至于自己按reids协议用原...

2016-09-20 17:21:53

阅读数 2055

评论数 0

原创 phpredis subscribe超时问题及解决

问题描述redis提供了pub/sub功能,但在使用phpredis的subscribe时发现这样一个问题,代码如下(sub.php):<?php /*监听demo频道,打印收到的信息*/ function process($redis, $chan, $msg){ var_dump...

2016-09-18 15:51:11

阅读数 8807

评论数 0

翻译 redis HyperLogLogs(译文)

原文链接请猛戳这里HyperLogLog(HLL)是一种基于概率的数据结构,用于统计集合中不同元素的个数。通常要完成这项工作所需的内存大小与集合中不同元素的个数成正比。不过,有一种使用精度换取空间的做法,也就是使用较小的内存完成工作,但得到的结果会有一定误差。对于reids来说,这个误差小于1%。...

2016-09-13 11:56:40

阅读数 2271

评论数 0

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