- 博客(27)
- 收藏
- 关注
原创 phpstorm 无法保存sftp的user name配置
系统macphpstorm 2019在配置sftp时候,无法保存user name,查看phpstorm的日志信息:WARN - redentialStore.CredentialStore - save (new): The user name or passphrase you entered is not correct. (-25293)问题查找了很久,我这儿...
2019-06-04 11:48:30
1186
原创 CentOS安装mysql8.0
CentOS安装mysql8.0这篇文章记录的是使用yum源方式安装mysql8.0添加mysql的YUM源选择版本下载启动mysql这篇文章记录的是使用yum源方式安装mysql8.0你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。添加mysql的YUM源在以下链...
2019-04-14 16:02:56
351
原创 PhpStorm使用deployment时候密钥格式不正确
PhpStorm的deployment是一个很方便的功能,他可以让我们随时将修改的文件上传到测试环境,这次遇到的问题是在验证私钥的时候PhpStorm报错显示私钥格式不正确。情况如下: 很明显错误是生成的密钥格式不正确导致,于是对比了一下两种密钥格式: 于是我们可以看到,的确是有所不同,最后在openssh官网的发行说明中发现原来是从OpenSSH7.8开始ssh-ke...
2018-11-27 13:16:18
1324
原创 git常见撤销操作
git reset可以说是一个很好的后悔药,我们在commit之后往往会突然发现这不是我想要的,以下例子很好的解释了reset的三个参数的用法和意义 git reset 在上述中hard soft mixed的参数我们可以新建例子看看touch a && git add a && git commit -m '新建a'touch b &...
2018-10-28 10:51:24
638
原创 谷歌验证码recaptcha接入
recaptcha是一项谷歌免费验证码服务,本次接入的是reCaptcha v2 1、首先选择reCaptcha的类型,注册申请api密钥对,包含站点密钥和密钥组成,站点密钥用于在网站调用reCAPTCHA服务,密钥则是验证应用后端和 reCAPTCHA 服务校验用户返回的响应这两者间通信安全 2、接着接入到需要应用谷歌验证码的应用中最简单的接入方法: <scri...
2018-08-30 08:39:10
10805
1
原创 MySQL的四种隔离级别
MySQL的四种隔离级别本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 ...
2018-08-18 08:48:20
20859
7
原创 RPC
RPC(Remote Procedure Call)远程过程调用,是一种计算机通信协议。维基中这么定义-该协议允许运行于一台计算机的程序调用另一台计算机的子程序,而程序员无需额外地为这个交互作用编程。通过使用RPC,程序员在分布式应用中可以避免底层网络接口通信的细节,让你在调用远程程序时候就像调用本地程序一样。HTTP与RPC之间的关系:在一开始我对于HTTP和RPC也是有点混乱,...
2018-08-12 19:54:20
1271
原创 PHP的empty,isset和is_null区别
PHP提供了三个用于测试变量值的函数,分别是isset(),empty(),is_null(),他们都返回布尔值,但是也有区别。通过以下表格查看:对比项 isset()方法 empty()方法 is_null方法 ""(空字符串) true ture false " "(一个空格) true false false ...
2018-07-08 22:33:29
3481
4
原创 PHP学习之SAPI
学习使用的PHP是7.2.6我们在源码安装好PHP之后查看当前的目录:其中SAPI就是我们这篇文章所要学习的内容。那么什么是SAPI呢?SAPI全称为Server Application Programming Interface,服务器应用编程接口我们都知道PHP是一个脚本解释器,提供脚本解析与执行,我们可以在不同环境中应用这个解析器,例如web环境中,命令行中,嵌入其他应用中,面对着这么多不同...
2018-06-22 21:31:24
899
原创 PHP7的变量内部实现
本次学习使用的php版本是php7.2.6当我们谈及一门编程语言的变量,都会想到它的三个基本组成部分:变量名,变量类型,变量值,一直很好奇PHP的底层是怎么去表示变量的,所以有时间去学习了一下它的源码。在PHP的底层实现变量存储都是使用一种数据结构zval,这个结构同时还保存着PHP中的各种数据类型,我们可以在Zend目录下找到zend_types.h文件,此文件便定义了该数据结构对应的代码如下:...
2018-06-10 16:57:52
725
原创 InnoDB的逻辑存储结构学习
InnoDB存储引擎在存储设计方面之前一直是迷迷糊糊,这几天在读《MySQL技术内幕 InnoDB存储引擎》,有点了解,特意记下消化一下^^我们知道InnoDB是使用表空间结构来进行管理的。默认情况下InnoDB有一个共享表空间ibdata1,即所有的数据都存放在这个表空间内,但是我们可以设定innodb_file_per_table为ON使每一张表的数据可以单独放在一个表空间里虽然我们启动了in...
2018-06-09 10:40:06
1111
原创 AJAX跨域问题
最近工作有遇到跨域问题,正值周末,好好梳理一下跨域相关知识。还是老样子,提问去学习是习惯的方法:什么是跨域?为什么有跨域限制?怎么解决跨域限制?什么是跨域?什么叫同域-协议,域名,端口相同的就叫同域,否则都叫跨域协议。例如下面http://www.lanco.com ,其中http是协议,www.lanco.com是域名。一般后面都默认80端口,只是没有写出来而已。为什么有跨域限制?主要是浏览器的...
2018-05-14 22:43:57
213
原创 MySQL-定位低效的SQL语句
我们经常会遇到MySQL的性能问题,解决办法之一是去定位到低效的SQL语句。比较常用便是通过以下两种方式定位到执行效率较低的SQL语句:注:这里使用的MySQL是5.7版本,以下内容都是基于5.7版本1、慢查询日志:首先我们应该查看是否已经开启了慢查询日志:如上是一开始并没有开启慢查询,所以我们需要去开启并且配置慢查询一些参数:打开MySQL的配置文件my.ini(linux下为my.cnf)并在...
2018-05-12 18:22:11
888
原创 MySQL学习-SQL Mode
MySQL服务器可以工作在不同的SQL模式下,并能够针对不同客户端以不同的方式应用这些模式。这样,应用程序就能够对服务器操作进行量身定制以满足需求。这类模式定义了MySQL应支持的SQL语法,以及应该在数据上执行何种确认检查,这样就能在众多不同环境下与其他数据库服务器一起更便捷使用MySQL。在MySQL中主要用它来解决如下几类问题:1、通过设置SQL Mode,可以完成不同严格程度的数据校验,有...
2018-05-05 18:55:53
263
原创 MySQL学习之分区一
MySQL从5.1版本开始支持分区功能,它允许可设置的一定逻辑,跨文件系统分配单个表的多个部分,但是就访问数据库而言,逻辑上还是只有一个表。还是老样子,在学习新知识之前都先带着问题去寻找想要的答案:1、什么是分区?2、为什么分区?好处在哪?3、如何分区?什么是MySQL分区?一开始也讲了,根据一定逻辑规则,将一个表拆成多个更小更容易管理的部分。例如我们新建一张表利用range分区逻辑上还是只有一张...
2018-05-03 22:41:19
1085
原创 快速排序-三路快排
快速排序可能是应用最广泛的排序算法了,它的实现简单,只需要一个很小的辅助栈,将长度为N的数组排序所需时间和NlogN成正比,在本篇文章讲述一下改进的快速排序-三路快排三路快排所谓三路快排,一言以蔽之,就是同时排序小于选定值,等于选定值和大于选定值三种情况在这里我们随机选取一个值v作为分界点,分别排序小于v,等于v和大于v的,这里之所以随机选取是考虑到如果我们选取数组第一个值,那么在一个完全有序的数...
2018-04-30 11:47:33
5296
原创 MySQL之触发器
MySQL从5.0.2开始支持触发器功能,它是与表有关的数据库对象,当满足定义条件时触发并且执行触发器中定义的语句集合。如何创建触发器CREATE [DEFINER = { user | CURRENT_USER }] TRIGGER trigger_name trigger_time trigger_event ON tbl_name FOR EACH ROW ...
2018-04-30 10:07:52
203
原创 归并算法
归并算法是比较常见的的一种算法,它是将两个有序数组归并为一个更大的有序数组,他能够保证将任意长度为N的数组排序所需时间和NlogN成正比;不足点是它所需的额外空间和N成正比。如果能够理解递归,这个算法还是很好理解的:下面是自顶向下归并排序import java.util.*;public class MergeSort { private static void merge(Comparab...
2018-04-29 20:15:47
221
原创 MySQL-事件调度器
时间调度器是在MySQL5.1后新增的功能,它类似linux下面的任务调度器crontab,在这里可以理解为时间触发器,将数据库按自定义时间周期触发某种操作。创建事件调度器CREATE [DEFINER = { user | CURRENT_USER }] EVENT [IF NOT EXISTS] event_name ON SCHEDULE schedu...
2018-04-29 13:37:57
476
原创 MySQL-存储过程
再谈存储过程,我们先想想什么是存储过程?存储过程能做什么?怎么使用存储过程?什么是存储过程及他能做什么一言以蔽之,由多条SQL语句组成且经过编译存储在数据库中的集合。那么为什么需要存储过程?理由有很多,当然也有人主张不去使用它,我以为只要是能够方便我们就会有存在意义,而我觉得存储过程的用处彰显明显业务是在如下三点:1、当用不同语言编写多客户应用程序,或多客户应用程序在不同平台上运行且需要执行相同的...
2018-04-28 21:37:32
276
原创 TCP及三次握手四次挥手
TCP是传输层重要的协议之一,我们要想了解这个协议,首先必须了解他的头部报文数据格式。源端口和目的端口用于寻找发端和收端应用进程,这两个值加上IP首部中的源端IP地址和目的端IP地址唯一确认一个TCP连接序号:32位的序号标志从TCP发送端到接收端发送的数据字节流,序号是本报文段发送数据的第一个字节序号,TCP传输流中,每一个字节编上一个序号,当我们建立一个新连接时候,SYN标志变为1.序号字段包...
2018-04-14 11:52:16
752
原创 PHP实现四种常用O(N^2)级别算法-冒泡,插入,选择,希尔
冒泡排序:冒牌排序是最经常见的排序算法之一了,因为太简单了,思路正如名字一样,冒泡---把小的往上(前)冒,直到最后有序function sortArr($arr){ $length = count($arr); for($i=0;$i<$length-1;$i++) { for($k=$length-1;$k>$i;$k--){ i...
2018-04-10 20:35:10
205
原创 MySQL的B+树索引和Hash索引
我们在学习MySQL的时候有没有想过索引的目的和他的本质是什么呢?本篇文章在讲解B+树和Hash索引之前先开始谈一下我对这两个问题的看法吧^-^索引的目的毋庸置疑就是提高查询效率了,很多书籍都是把他类比为字典前面的拼音索引,比如我们在查找'lanco'这个单词,是不是先去查找到'l'这个字母,然后再往下找到'a'这个字母,依次再找剩下的字母;试想如果没与索引,我们是不是需要从头开始翻这本词典呢?多...
2018-04-08 15:35:36
1366
原创 MySQL的存储引擎
先说说什么叫存储引擎吧,乍一看觉得好像很高端的样子,如果去了解MySQL体系结构,你会发现,在存储引擎下面一层是文件系统,而存储引擎,说的明白也就是与文件系统打交道的子系统,是一种文件访问机制访问数据的。我们可以通过show engines\G;查看当前支持的存储引擎,其中support:yes代表支持我们在建表时候可以指定使用哪一种存储引擎也可以使用alter语句将已经存在的表修改为其他存储引擎...
2018-04-07 13:42:18
206
原创 MySQL锁问题学习
MySQL锁的机制相对其他数据库而言比较简单,显著特点是不同存储引擎支持不同锁机制,如下图:存储引擎表级锁 页面锁行级锁MyISAM支持不支持不支持InnoDB支持不支持支持BDB支持支持不支持而对于这三种锁各自特性,主要如下:表级锁,开销小,加锁快;不会出现死锁;锁的粒度大,发生锁冲突概率最高,并发性最低。页面锁,开销和加锁时间处于表锁和行锁之间,会出现死锁;锁定粒度界于表锁与行锁。行锁,...
2018-04-06 20:32:07
278
原创 PSR-0与PSR-4
PHP自动加载的背景 在开发过程中,我们如果想引入外部的class,通常都会使用require或者include方法,其实这个在小规模的开发中没多大问题,但是万一开发规模大了起来,那样子就会有很多require/include语句,这样子非常不优雅,同时如果遗漏引入,或者重复引入,那也是一个麻烦事,require_once的代价很大,暂且不提。PHP自动加载函数程序员应该是懒惰的,我们不愿意这么...
2018-03-18 10:20:44
1877
原创 浅聊CGI、FASTCGI、PHP-CGI、PHP-FPM
再谈论这个话题之前,先在脑中仔细区别一下这四者的关系,如果是有一些含混不清的,或许这篇拙文能带给您一点清晰地思路。 什么是CGI,HTTP权威指南这么定义--通用网关接口(Common Gateway Interface),可以用来装载程序以响应对特定URL的HTTP请求,并收集程序输出数据,将其放在HTTP响应中回送。说的明白点也就是处理各种需要的转换,定义输入输出的格式注:CG...
2018-03-14 08:19:32
131
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人