Category: 后端开发

31 篇文章

编译安装php7.3
最近在一台CentOS6.2的机器上部署php7.3,系统有点旧,稍微折腾点。 安装需要的依赖 sudo yum install libxml2 libxml2-devel openssl openssl-devel bzip2 bzip2-devel libjpeg libpng freetype libjpeg-devel libpng-dev…
编译protobuf.so扩展
在官网下载适合php版本的包。pecl官网 解压 tar zxvf protobuf.tar.gz cd到目录并用phpize生成configure文件 cd protobuf-3.7.1/(如果是从github下载的,则cd到protobuf-3.7.1/php/ext/google/protobuf) phpize 编译三板斧 ./config…
用lockf保证同一时间只有一个进程运行
安装 参见github 使用场景 保证同一时间只有一个进程运行。 例如 crontab 设定每分钟跑一次 1.php ,但如果超过1分钟该脚本还没执行完,就会出现多个php脚本同时运行的情况,在某些场景下可能会有问题。 为了满足上述需求,我们可能会在脚本里添加一段代码,创建锁,执行完后删除锁,若锁文件存在则直接return。 还有另一种解决方案就是…
给你的Mac/Linux的rm装一个回收站
作为程序员,在工作中经常用到rm。我在不久前用vscode写代码,在底下的终端里想删掉没用的文件,手抖把未提交到git的代码文件删了。还好代码量不多,否则会崩溃。毕竟重写代码是很痛苦的~ 因此本文标题提上了日程 选择一款安全的删除脚本 Github看到一个脚本满足需求。 github地址,里边有多种安装方式。我选择的是npm全局安装。 npm i …
HTTPS原理解析
HTTP是什么 超文本传输协议(英文:HyperText Transfer Protocol,缩写:HTTP)是互联网上应用最为广泛的一种网络协议。是一个基于请求与响应模式的、无状态的、应用层的协议,常基于TCP的连接方式,绝大多数的Web开发,都是构建在HTTP协议之上的Web应用。 为了方便通信就必须统一约定好双方的数据协议,如果每个人都搞一套…
排查elasticsearch的cpu居高不下,查询慢的问题
背景 近来es查询很慢,kibana的discover界面偶尔还会因为查询请求超时而无法显示数据。/_cat/indices?v 等对es的查询也慢的出奇,需要1、2分钟才返回结果。 排查 top命令看了es的java进程,发现cpu一直很高,130%左右,一直没有下降过。查看es的日志,发现gc.log中几乎每秒都要触发一次GC Full GC …
mysql命令行神器mycli
为什么使用它 受够了mysql原生client后,你会爱上mycli的自动补全和高亮。对于我这种常常记不住表结构的人来说,自动补全真是爽得不行。 ps:sql新手谨慎使用,建议多裸写sql后再来使用该软件 安装 Mac brew install mycli CentOS # 请尽量先将pip升级到最新版本 pip install --upgrade…
NodeJs中将TinyInt转换为Boolean
Mysql的基本数据类型中并没有布尔型,之所以建表和数据操作中能够使用BOOLEAN是因为mysql将其作为了tinyint(1)的别名。用0表示false,1表示true。 但开发过程中,既然我们给某一字段定义为布尔型,那么在我们获取数据后,期望得到的必然是布尔值而不是0或1。因此我们可以在得到返回值后转换一下。 这里我使用的是mysql模块,该…
设计模式之职责链
什么是职责链 职责链模式(Chain of Responsibility):使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。 例子一:支付宝的花呗自动还款扣款顺序 余额->借记卡快捷->余额宝 首先会从余额扣款,若余额不足或扣款失败则将扣款这…
thumbnail
App用户身份验证
安全问题 现在的移动互联网应用,大多是通过客户端带上数据请求不同动作的api来实现不同业务要求的。即是说,通过抓包就可以获取到请求的api和发送、接收到的数据。如果没有一定的安全防范意识,很容易被攻击。 这里推荐一款叫fiddler的抓包工具,使用方法自行搜索。下面是对车来了App的抓包截图: 没有使用https,所以数据完全暴露出来了。可以看到我…