自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(67)
  • 资源 (1)
  • 收藏
  • 关注

原创 MySQL字符索引没用上问题

某一天,接口突然502,运维同学说没有可用的PHP进程了,看监控说是这个接口夯住了,导致请求进不来,临时把这个接口给返回了200(PS:线上这个接口没有实际作用,所以这么操作了);给了慢查询的SQL,用explain 看了下,发现竟然没有用到创建的索引,此时数据库的量有大概150万行,对SQL里where 字段加了双引号后,再用explain看SQL,此时key是索引了,好吧。。。。SQL写的...

2023-06-13 17:34:00 57

原创 grpc-gateway使用

前言记录下使用grpc-gateway来支持grpc服务的http请求,网上大都是引入google/api/annotations.proto的方式,懒的改每个proto文件,在grpc-gateway的github里看到了另一种方式,不用改proto文件,适合~原理grpc-gateway的原理我就不赘述了,大概逻辑是http的请求过来,grpc-gateway接受请求,再生成grpc的...

2021-08-06 16:30:00 353

原创 golang的rpc选项模式一点理解

在学习rpc小册子时遇到了server端传参用了选项模式前提:要记住在go语言里函数也是一种变量类型,和自定义的其它类型一样,也可以作为值传递,也可以当作结果赋值如下是代码,注释是自己对这块的理解,希望对你能有些许帮助://ServerOptions 结构体类型type ServerOptions struct { address string network s...

2020-07-14 17:58:00 272

原创 因为Linux区分文件大小写又踩了一次坑

出现的现象是:在本地的Mac环境里,请求的接口地址,在Linux服务器上请求提示404,文件在服务器上是存在的,但是请求返回的404;文件名是大驼峰命名规则AaBbCc文件名改成Aabbcc就OK了...

2020-07-06 16:48:00 584

原创 说说PHP的变量赋值

PHP 中的变量用一个美元符号后面跟变量名来表示。变量名是区分大小写的。赋值类型传值(默认)变量默认是传值赋值,即表达式的值被赋值到目标变量。表达式在 PHP 中,几乎所写的任何东西都是一个表达式,表达式即“任何有值的东西”。最基本的表达式形式是常量和变量如:$a = 5; 其中5是一个值为5的表达式,把此表达式的值赋值给变量$a引用在 PHP 中引用意味着用不同的名字...

2020-04-09 17:15:00 117

原创 dyld: Library not loaded: /usr/local/opt/openssl/lib/libcrypto.1.0.0.dylib

问题描述:本地想看下php的版本 执行php -v ,出现如下错误:dyld: Library not loaded: /usr/local/opt/openssl/lib/libcrypto.1.0.0.dylibReferenced from: /usr/local/bin/phpReason: image not found网上找了各种办法:用install_name...

2020-02-18 00:21:00 8973 4

原创 设置iterm2可以保存ssh用户密码

主要思想是在iterm2的profile里自动执行命令,需要有个脚本模拟用户登陆步骤脚本第1个参数是用户名,第2个参数是host,第3个参数是密码。#!/usr/bin/expectset timeout 30spawn ssh [lindex $argv 0]@[lindex $argv 1]expect { "(yes/no)?" {sen...

2020-01-02 19:43:00 814

原创 grpc服务端转换protobuf到http请求参数query

前提grpc服务接收到request的请求后,需要把参数转换成http,去请求其他接口。使用go作为grpc的服务端,数据协议是protobuf想到的几种解决方案:1.编译好的pb.go文件里有个string(),可以把所有参数都打印出来,参数之间是空格隔开的,参数和值是k:v的形式,但是不带引号,不是json格式2.把接收到的数据转换为json,直接以json的格式,发送请...

2019-12-18 20:03:00 1958

原创 mac环境下安装grpc的PHP客户端

前言自己本地环境原本有个PHP7.1的版本,结果在装grpc时一直提示没有权限把grpc.so拷贝到PHP扩展目录下,就重新装了一次php此次安装涉及的有:PHPcomposerpeclgrpcphp的grpc扩展protobufphp的protoc插件安装1.覆盖原来的php# 安装PHPbrew intall php# 优先使用新安装的PHP7.2,...

2019-10-18 16:37:00 761

原创 go语言的grpc安装记录

grpc安装是一种rpc服务,包含服务端和客户端,能够更容易地创建分布式应用和服务。默认使用protocol buffers这种结构序列化机制(当然也可以使用json)。安装grpcprotoc是protocol buffer的编译器,根据.proto来生成创建应用所需的特定客户端和服务端的代码(PHP仅支持创建客户端代码)。生成的代码同时包括客户端的存根和服务端要实现的抽象接口...

2019-10-15 19:56:00 240

原创 MySQL-3 行记录的存储结构

MySQL-3 行记录的存储结构 本文同样参考小孩子写的《MySQL是怎样运行的:从根儿上理解MySQL》来总结下,一条记录在底层的存储逻辑是怎样的。InnoDB页简介这个存储引擎是将表中的数据存储到磁盘上,真正的数据处理是在内存中,innodb将数据划分为若干个页,以页作为磁盘和内存之间交互的基本单位,大小一般为16KB。行格式指定行格...

2019-05-09 19:00:00 453

原创 MySQL2.字符集乱码

MySQL2.字符集乱码 MySQL2.字符集此节记录下MySQL出现乱码的原因。还是参考小册子~字符集简介计算机中只能存储二进制数据,建立字符与二进制数据的映射关系来存储字符。从两方面考虑:1.界定清楚字符范围,即哪些字符映射成二进制数据2.怎么映射将一个字符映射成一个二进制数据的过程叫做编码,将二进制数据映射到字符叫做解码。人们...

2019-04-28 21:07:00 98

原创 MySQL客户端/服务器架构

MySQL客户端/服务器架构 MySQL的客户端/服务器架构本文主要参考作者小孩子写的MySQL小册子,整理MySQL的服务器程序直接和我们存储的数据打交道,客户端程序连接服务器,发送增删改查的请求,服务器操作维护的数据响应请求。MySQL服务器程序的进程也被称为MySQL数据库实例。我们启动的MySQL服务器进程的默认名称是mysqld,而常用的MySQL客户端进程...

2019-04-19 11:10:00 601

原创 MySQL1:客户端/服务器架构

一、MySQL的客户端/服务器架构前言之前对MySQL的认知只限于会写些SQL,本篇算是笔记,记录和整理下自己对MySQL不熟悉的地方。大致逻辑:MySQL的服务器程序直接和我们存储的数据打交道,客户端程序连接服务器,发送增删改查的请求,服务器操作维护的数据响应请求。MySQL服务器程序的进程也被称为MySQL数据库实例。我们启动的MySQL服务器进程的默认名称是mysqld,...

2019-04-19 11:10:00 117

原创 include 和require的区别

include 和require的区别 前言require 和include都是引入文件,有什么区别呢?requirerequire 这个函数通常放在 PHP 程序的最前面,PHP 程序在执行前,就会先读入 require 所指定引入的文件,使它变成 PHP 程序网页的一部份。常用的函数,亦可以这个方法将它引入网页中。includeinclude 这个函数一般是放...

2019-04-17 10:14:00 3064

原创 Charles+iPhone配置ssl证书

Charles+iPhone配置ssl证书 Charles+iPhone配置ssl证书一、手机1. 配置代理设置->无线局域网->选和电脑同一网络的无线->配置代理->手动服务器配置电脑的IP,端口设置为88882. 安装证书在Charles->help->ssl proxysettings-&g...

2019-04-04 16:40:00 1420

原创 php获取脚本执行的参数

php获取脚本执行的参数 在看PHP文档到预定义变量时碰到了$argc和$argv,顺手记录下getopt()从命令行参数列表中获取选项$arg = getopt('d:n:’); //只接收d n之后的参数$num = $arg['n'] ? $arg['n'] : 365; //是得到的n后面的参数这种属于短参数,对于date 等长...

2019-02-22 17:17:00 852

原创 const和define的区别

const和define的区别 const和define的区别两者都是定义常量,有什么区别呢?const:const CONSTANT = 'aa'在PHP5.3.0以后,可以使用const关键字在类定义之外定义常量。使用const关键字定义常量必须处于最顶端的作用区域,因为用此方法是在编译时定义的。这就意味着不能在函数内,循环内以及...

2019-02-20 15:46:00 118

原创 session临时文件存储路径

session临时文件存储路径 今天把本地的项目部署到外网时,遇到个问题,使用session_start()时,提示****目录下的这个文件不存在,网上查了查,说我的根目录不存在,然后在php.ini文件里看了下session.save_path,到它指定的目录下一看,这个目录不存在,就新建了指定的目录,提示就没了。...

2019-02-19 15:18:00 292

原创 php跨域问题记录

php跨域问题记录 记录跨域问题一、问题在控制层加了如下代码:header('Access-Control-Allow-Origin: '.$_SERVER['HTTP_ORIGIN'] );header('Access-Control-Allow-Credentials: true');header('Access-Control-...

2019-02-18 18:31:00 108

原创 git查日志命令

git查日志命令 git常用命令1.创建仓库a.当前目录创建仓库,即把当前目录的文件开始用git管理,该命令会在当前目录下创建一个.git目录git initb.指定目录创建仓库   git init 目录名2.设置配置a.全局配置git config --global user.name woniugit config -...

2019-01-11 17:13:00 498

原创 使用git把本地目录传到远程仓库

使用git把本地目录传到远程仓库 需求:要把本地不为空的一个目录和远程现有的一个仓库关联步骤如下:git init //生成.git目录git add . //把当前目录里的文件加入到暂存区git commit -m '上传' //从暂存区提交到仓库git remote add origin 远程仓库地址 //添加远程仓库git ...

2019-01-11 17:03:00 106

原创 git设置ssh访问

git设置ssh访问 生成新的ssh密钥进入根目录的.ssh里,没有也行,生成文件名时会生成目录的cd ~/.ssh生成文件名和文件位置ssh-keygen -t rsa -C "github" -f id_rsa_github指定生成的文件名是id_rsa_github指定备注是github密码一般为空即可此时的~/.ssh目...

2019-01-11 15:45:00 875

原创 本地ssh设置多个git项目访问

前因:自己本地的~/.ssh里原本有个id_rsa,到了公司后新的git项目配置后,把自己原有的文件覆盖了,导致github和公司的项目我只能选一个,郁闷,怎么区分开呢?大致逻辑是新生成一对密钥文件,指定成不同的文件名,然后在config里配置不同的host用不同的文件,具体的步骤如下:生成新的ssh密钥进入根目录的.ssh里,没有也行,生成文件名时会生成目录的cd ~/.ss...

2019-01-11 15:45:00 88

原创 php的phar是什么?

php的phar是什么? phar要求5.2以上前言最近在看composer,是下载了一个composer.phar,然后放到/usr/local/bin目录下,就可以全局使用composer了,然而并不懂phar是什么,还以为是个PHP的扩展,要用phpize编译的,看了这篇文章后才懂韩天峰-php中phar包的使用创建php5.3...

2019-01-10 16:51:00 720

转载 HTTPS的理解

HTTPS参考维基名称超文本传输安全协议,是一种透过计算机网络进行安全通信的传输协议。实际上还是通过个HTTP进行通信,但利用ssl/tls 来加密数据包。目的是提供对网站服务器的身份认证,保护交换数据的隐私与完整性。协议层HTTP协议和安全协议同属于应用层,其实是属于osi的会话层,具体来讲,安全协议工作在HTTP之下,运输层之上:安全协议向运行HTTP的进程提供一个类似于TCP的套...

2018-09-26 19:26:05 200

原创 MySQL的核心模块

MySQL的核心模块会有助于理解MySQL整个的执行,主要是参考《MySQL核心技术》这本书先看图理解下整个流程,再去看各个模块的功能服务器初始化模块:在启动时完成服务器初始化。连接管理器:侦听来自客户端的连接,然后将请求派发给线程管理器线程管理器:负责跟踪线程,确保分配线程,以处理来自客户端的连接。如果是从服务器,则会启动两个线程:SQL线程和I/O线程。连接线程:...

2018-09-21 18:37:18 574

原创 将博客搬至CSDN

如题,我要把博客搬过去啦

2018-09-19 19:24:00 85

原创 php exit die的区别

exit输出一个消息并且退出当前脚本void exit([string $status])void exit(int $status)中止脚本的执行。尽管调用了exit(),Shutdow函数以及object_destructors总是会被执行。是个语法结构,如果没有status参数要传入,可以省略圆括号status参数status如果是一个字符串,在退出之前该函数会打印st...

2018-05-07 18:12:00 163

原创 print_r print var_dump echo区别

print_rprint_r(mixed $expression [,bool $true])显示关于一个变量的易于理解的信息,如果给出的是string/integer/float 将打印变量值本身,如果给出的是array,将会按照一定格式显示键和元素。注意:print_r将把数组的指针移到最右边。使用reset()可让指针回到开始处。如果想捕捉输出,可使用return参数,设为...

2018-03-20 19:13:00 88

原创 docker时间和本地时间不一致的问题


 前言:在本地执行date 和登录docker后的date显示的时间不一致,差一天多,不是8个小时参考:戳这儿先重启,查看后发现差8个小时用里面cp localtime 再重启还是差8个小时试了下直接拷这个软链所指的目录:docker cp /usr/share/zoneinfo/Asia/Shanghai 容器ID:/usr/share/zoneinf...

2018-03-07 12:14:00 242

原创 php提供的sapi有哪些?CGI、FastCGI、php-fpm、php-cgi解释


 一、前言一直对PHP的sapi是什么东西好奇,在网上一查都是各种说fpm cgi fastcgi php-cgi直到看了鸟哥的这篇文章介绍戳这里,看到源码下的sapi目录才有所了解。二、sapi是什么了解下PHP的架构体系会知道sapi是PHP提供的一种供其他程序调用的接口(感觉接口这词好像不太准确,欢迎纠正),通过sapi其他程序就可以执行PHP脚本。...

2018-02-28 18:19:00 165

原创 换行符\r \n LF


 前言:在对照PSR-2规范时,看到文件结尾必须要以Unix LF(linefeed)结尾,不懂查~来源于:http://www.cppblog.com/prayer/archive/2009/08/19/93854.html 在计算机还没有出现之前,有一种叫做电传打字机(Teletype Model 33,Linux/Unix下的tty概念也来自于此)的玩意...

2018-01-28 00:03:00 157

原创 Linux系统软件安装的几种方式

Linux系统,一个文件能不能执行看的是有没有可执行权限x,不过真正的可执行文件是二进制文件(binary file),举例来说Linux上的c语言源码编写完后,通过gcc程序编译后就可以创建一个可执行的二进制文件。 1、什么是make 与configure make是一个程序,会去找makefile(记录了源码如何编译的详细信息),通常这个检测程序文件名为configure或c...

2018-01-10 18:24:00 973

原创 网页在微信浏览器中打开,发送给朋友自定义内容、标题

在指定的域名下测试!在指定的域名下测试!在指定的域名下测试!不然会报https认证错误demo:http://demo.open.weixin.qq.com/jssdk/sample.zipjs页面的demo:http://demo.open.weixin.qq.com/jssdk先打印accesstoken最基本的一步,最开始是curl返回的null是因为没有在指定的域名下运行...

2018-01-10 14:54:00 1234

原创 Linux进程作业常用命令

从鸟哥的私房菜书里摘抄的部分,方便查阅一、作业管理    1、直接将命令放到后台执行的&        如想将/etc 备份为/tmp/ect.tar.gz时不想等待,可以这样做:        tar -zpcf  /tmp/etc.tar.gz /etc &        [1] 24874 <==[job number] PID       ...

2018-01-10 14:46:00 125

原创 thinkPHP替换SQL变量

使用tp里M()->where(pb_id=%d and course=%d and DATE_FORMAT(pub_time, \"%H:%i:%s\") < "%s", array($pb_id, $coursse, $time))->select();想要查询拆书包,结果是把所有的数据都查出来了,调试断点时发现tp把 where的第二个数组参数交给相应连接mys...

2017-12-29 11:21:00 221

原创 php进阶之路--转载

之前有看过相关的文章,觉得还是这篇详细点,有具体的目标实现起来才更有动力转载自:http://wen.52fhy.com/2016/2016-09-03-PHP-cheng-xu-yuan-xue-xi-lu-xian-zhuan.html第一阶段:基础阶段(基础PHP程序员)重点:把LNMP搞熟练(核心是安装配置基本操作)目标:能够完成基本的LNMP系统安装,简单配置维护...

2017-12-29 11:19:00 225

原创 cookie session区别

 先理解为什么出现cookie和session:为了使得网站可以跟踪客户端与服务器之间的交互,保存和记忆每个用户的身份和信息,我们需要一种强有力的解决方案,这样就产生了会话控制。会话控制思想就是能够在网站中跟踪一个变量,我们可以跟踪变量,就可以做到对用户的支持,并根据授权和用户身份显示不同内容,不同页面。一、cookie:  cookie是在http协议下,服务器或脚本可以维护...

2017-12-21 11:48:00 76 1

原创 mac环境下支持PHP调试工具xdebug,不需要建项目server

先让php支持xdebug方式一:https://xdebug.org/download.php 下载相应的xdebug 可以到http://xdebug.org/wizard.php 把phpinfo的所有信息粘贴上去,会给出相应的版本解压 tar -zxvf xdebug cd xdebug目录下执行 phpize(我的目录是/usr/local/bin/phpize,...

2017-11-17 20:32:00 184

空空如也

空空如也

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

TA关注的人

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