自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(79)
  • 资源 (7)
  • 问答 (6)
  • 收藏
  • 关注

转载 八个PHP 高级工程师经典面试题

1.PHP 如何实现不用自带的 cookie 函数为客户端下发 cookie。对于分布式系统,如何来保存 session 值。这个题有点绕。考的还是 COOKIE 和 SESSION 的基础知识。服务端通过 set-cookie 命令来通知客户端保存 cookie。只要按照 domain path 过期时间等规则 用 header 函数就可以实现。分布式系统 session,集中处理。按我们公司的架构,为了实现高可用和高容灾,提供一个分布式的验签服务。具体的可以看下 redis 的分布式服务架构

2020-06-30 21:10:18 9432

原创 PHP 执行流程

一.数据库三范式第一范式:1NF是对属性的原子性约束,要求属性具有原子性,不可再分解;第二范式:2NF是对记录的惟一性约束,要求记录有惟一标识,即实体的惟一性;第三范式:3NF是对字段冗余性的约束,即任何字段不能由其他字段派生出来,它要求字段没有冗余。范式化设计优缺点:优点:可以尽量得减少数据冗余,使得更新快,体积小缺点:对于查询需要多个表进行关联,减少写得效率增加读得效率,更难进行索引优化反范式化:优点:可以减少表得关联,可以更好得进行索引优化缺点:数据冗余以及数据

2020-06-30 21:06:32 10290

原创 logstash7.4. mysql数据导入es并指定自定义的逗号分词器

参考了:https://blog.csdn.net/alan_liuyue/article/details/78361431 https://www.cnblogs.com/jstarseven/p/7707499.html步骤一、新建文件 template-es.json (名字可自定义),内容如下:{ "template": "*", "version": 50001, "settings": { "index.ref...

2020-06-30 20:20:02 9236

转载 使用elasticsearch-php需要注意的match_all和mapping问题

一、前言最近在把ELK升级到7.0之后,发现使用的ES-PHP并不兼容7.0的版本,可能作者正在努力开发新版本中吧。不过身为使用者,目前还是尽量少用7.0的一些新特性吧,兼容旧版本的ES还是可以的。二、问题1、使用match_all报错(1)报错信息:{"error":{"root_cause":[{"type":"parsing_exception","reason":"[match_all] query malformed, no start_object after q...

2020-06-30 15:04:00 10734

转载 Docker 清理容器 log 日志

docker logs <容器ID> 是常用命令,来查看容器运行日志,但时间长了之后,就会发现越来越慢,log 太多了,这时就需要清理一下。先查看日志文件位置:$ docker inspect --format='{{.LogPath}}' <容器ID>/var/lib/docker/containers/545e06a75cc0ac8f8c1e6f7217455660187124a3eed031b5eb2f6f0edeb426cb/545e06a75cc0ac8f.

2020-06-30 10:36:32 10419

原创 ElasticSearch V7.4.0: Root mapping definition has unsupported parameters

场景复现请求地址:put http://127.0.0.1:9200/test,请求内容如下:{ "settings": { "analysis": { "analyzer": { "comma": { "type": "pattern", "pattern":"," } } .

2020-06-29 21:08:51 9968

原创 详解Mysql中的bit类型及与tinyint的对比

Java bit 对应tinyint(1) false = 0 true = 1利用它可定义一个位变量,但不能定义位指针,也不能定义位数组。它的值是一个二进制位,不是0就是1,类似Boolean类型中的True和False。bit只能表示0和1两种值。通常bit定义的变量作为一个标志位用。类型定义例如一个数据为25,那么它就可以定义为char型、int型等。因为他们都在自己的值域内。同样一个在自己值域的数0和1就可以定义为bit型插入插入数据时,插入true,fals...

2020-06-29 09:16:50 15391

转载 docker exec一次执行多个命令详解

docker exec命令能够在运行着的容器中执行命令。docker exec命令的使用格式:docker exec [OPTIONS] container_name COMMAND [ARG...]OPTIONS说明:-d,以后台方式执行命令;-e,设置环境变量-i,交互模式-t,设置TTY-u,用户名或UID,例如myuser:myusergroup通常COMMAND只能是一条语句,为了支持多个命令的执行,需要将多个命令连接起来交给Shell,docker exec命令的使

2020-06-28 19:38:56 10739

原创 mysql 各关键词的查询顺序

mysql执行sql的顺序从 From 开始,以下是执行的顺序流程1、FROMtable1 left join table2 on 将table1和table2中的数据产生笛卡尔积,生成Temp12、JOINtable2所以先是确定表,再确定关联条件3、ONtable1.column = table2.columu 确定表的绑定条件 由Temp1产生中间表Temp24、WHERE对中间表Temp2产生的结果进行过滤产生中间表Temp35、GROUP BY 对中间表Te...

2020-06-27 23:33:48 8722

原创 MySQL explain参数

1、id:SQL执行的顺序的标识。 sql从里向外执行,通过以上观察发现sql是按照id从大到小执行的。2、select_type: select类型1)、SIMPLE(不使用UNION或子查询等)2)、PRIMARY:最外层的select3)、DERIVED:派生表的SELECT(FROM子句的子查询)4)、UNION:UNION中的第二个或后面的SELECT语句5)、UNION RESULT:UNION的结果。6)、DEPEN...

2020-06-27 23:29:14 8969

原创 SQL中的where条件,在数据库中提取与应用浅析

1 问题描述一条SQL,在数据库中是如何执行的呢?相信很多人都会对这个问题比较感兴趣。当然,要完整描述一条SQL在数据库中的生命周期,这是一个非常巨大的问题,涵盖了SQL的词法解析、语法解析、权限检查、查询优化、SQL执行等一系列的步骤,简短的篇幅是绝对无能为力的。因此,本文挑选了其中的部分内容,也是我一直都想写的一个内容,做重点介绍:给定一条SQL,如何提取其中的where条件?where条件中的每个子条件,在SQL执行的过程中有分别起着什么样的作用?通过本文的介绍,...

2020-06-27 23:27:51 8786

原创 MySQL 到底支不支持事务嵌套

最近开发中遇到了使用MySQL,多次开启事务,出现了数据错乱问题,伪代码如下:begin;# 操作1begin;# 操作2rollback;执行完后出现了操作1的数据真正写入,只有操作2的数据回滚了。在第一个事务没有提交或回滚时,再开启第二个事务时,会自动提交第一个事务。这明显不符合心理预期,而且也无法回滚一部分操作。那么问题来了,MySQL 支不支持事务嵌套呢?这个问题很难准确回答支持还是不支持!首先,调用多次begin的写法,在MySQL里肯定是无法首先事务嵌套的。经

2020-06-27 23:26:13 9771

原创 MySQL8 设置远程访问授权

MySQL不允许从远程访问的方法开启 MySQL 的远程登陆帐号有两大步:1、确定服务器上的防火墙没有阻止 3306 端口。MySQL 默认的端口是 3306 ,需要确定防火墙没有阻止 3306 端口,否则远程是无法通过 3306 端口连接到 MySQL 的。如果您在安装 MySQL 时指定了其他端口,请在防火墙中开启您指定的 MySQL 使用的端口号。如果不知道怎样设置您的服务器上的防火墙,请向您的服务器管理员咨询。2、增加允许远程连接 MySQL 用户并授权。1)首先以 ro

2020-06-27 23:23:43 20018 1

原创 解决报错 Can not connect to local MySQL server through socket

1.启动命令systemctl start mysqld.service 或者/etc/init.d/mysqld start 结果同样的错误 2.错误是: Job for mysqld.service failed. See 'systemctl status mysqld.service' and 'journalctl -xn' for details. 3.按照提示输入命令 systemctl st...

2020-06-27 23:22:33 13000

原创 mysql 联表 delete

1、从数据表t1中把那些id值在数据表t2里有匹配的记录全删除掉DELETEt1FROMt1,t2WHEREt1.id=t2.id 或DELETE FROMt1USINGt1,t2WHEREt1.id=t2.id2、从数据表t1里在数据表t2里没有匹配的记录查找出来并删除掉DELETEt1FROMt1LEFTJOINT2ONt1.id=t2.idWHEREt2.idISNULL或DELETE FROMt1,USINGt1LEF...

2020-06-27 23:17:13 9412

原创 mysql 联表 update

假定我们有两张表,一张表为Product表存放产品信息,其中有产品价格列Price;另外一张表是ProductPrice表,我们要将ProductPrice表中的价格字段Price更新为Price表中价格字段的80%。在Mysql中我们有几种手段可以做到这一点,一种是update table1 t1, table2 ts ...的方式:UPDATE product p productPrice ppSET ppprice priceWHERE pproductId productIdAN

2020-06-27 23:16:21 9188

原创 mysql 的 find_in_set函数 - 通过逗号分隔id的字段快速获取相关表对应id的数据

举个例子来说:有个文章表里面有个type字段,他存储的是文章类型,有 1头条,2推荐,3热点,4图文 .....11,12,13等等现在有篇文章他既是 头条,又是热点,还是图文,type中以 1,3,4的格式存储.们我们如何用sql查找所有type中有4图文标准的文章呢??这就要我们的find_in_set出马的时候到了.以下为引用的内容:select * from article where FIND_IN_SET('4',ty...

2020-06-27 23:15:19 9087

原创 MySQL字段类型说明

MySQL支持大量的列类型,它可以被分为3类:数字类型、日期和时间类型以及字符串(字符)类型。本节首先给出可用类型的一个概述,并且总结每个列类型的存储需求,然后提供每个类中的类型性质的更详细的描述。概述有意简化,更详细的说明应该考虑到有关特定列类型的附加信息,例如你能为其指定值的允许格式。 MyISAM表中行的最大大小为65534字节。每个BLOB和TEXT列帐户只占其中的5至9个字节。如果MyISM包括列类型,记录格式也是可变长度。当创建表时,在某些条件下,MySQL可以将一个列从变长类型改为固...

2020-06-27 23:13:08 9623

原创 phpstorm配置xdebug进行远程调试

  注:一定要关掉防火墙,不然一切徒然 一:添加[Xdebug]板块  这张图是我所做的配置,其实配置上不会有很大问题,大家注意一下,xdebug.remote_host 的ip要填你的phpstorm,也就是你的windows所在的ip,xdebug.remote_port默认是9000,但是一般情况下,windows的9000端口会被占用,建议在关闭windows防火墙的时候,随意写一个端口,或者是开启防火墙,在新建策略里面开启一个端口供远程调试使用下面给大家一个官...

2020-06-26 11:29:37 10908

原创 CentOS7安装Nginx

(版本切换时无非就修改 php 选项中的interpreter, 检查有无安装xdebug)php.ini配置"[xdebug]zend_extension=”/usr/lib/php/extensions/no-debug-non-zts-20090626/xdebug.so”xdebug.idekey=”PHPSTORM”xdebug.remote_host=127.0.0.1xdebug.remote_enable=onxdebug.remote_port = 9000

2020-06-26 11:27:55 8782

转载 Git 撤销合并

Git 的 revert 命令可以用来撤销提交(commit),对于常规的提交来说,revert 命令十分直观易用,相当于做一次被 revert 的提交的「反操作」并形成一个新的 commit,但是当你需要撤销一个合并(merge)的时候,事情就变得稍微复杂了一些。Merge Commit在描述 merge commit 之前,先来简短地描述一下常规的 commit。每当你做了一批操作(增加、修改、或删除)之后,你执行 git commit 便会得到一个常规的 Commit。执行 git show

2020-06-26 11:22:43 24144

转载 fiddler 设置断点并修改请求

1 fiddler有两种方式设置断点在菜单栏Rules-》Automatic BreakPoints的下拉菜单里选择设置断点的方式(Before Requests,After Responses),取消断点选择Disabled。这种设断点的方式是对所有url生效。用bpu命令对特定url设置断点,这种方式断点设在Before Requests。取消断点时只需要再执行bpu命令即可。执行如下命令(如下图):bpu https://www.baidu.com/2 用bpu命令设置断点并修改

2020-06-26 11:08:02 9684

转载 Fiddler实现手机抓包

一.对PC(笔记本)参数进行配置 1. 配置fiddler允许监听到https(fiddler默认只抓取http格式的) 打开Fiddler菜单项Tools->TelerikFiddler Options->HTTPS, 勾选CaptureHTTPS CONNECTs,点击Actions, 勾选Decrypt HTTPStraffic和Ignore servercertificate errors两项,点击OK(首次点击会弹出...

2020-06-26 11:03:55 9073

原创 Fiddler显示目标IP的设置方法

前言由于web前端在多个环境中开发,需要经常更换host,而设置host之后会出现延迟的情况,怎么知道现在访问的域名时指向哪个服务器IP的呢?下面介绍通过对抓包工具Fiddler的设置,让请求显示服务器IP信息,方法很简单。操作快捷键Ctrl+R 或者 菜单->Rules->Customize Rules…在CustomRules.js文件里Ctrl+F查找字符串 1 static function Main() ...

2020-06-25 23:40:28 9184 1

原创 利用Fiddler抓取websocket包

打开Fiddler,点开菜单栏的Rules,选择Customize Rules...这时会打开CustomRules.js文件,在class Handlers中加入以下代码static function OnWebSocketMessage(oMsg: WebSocketMessage) {// Log Message to the LOG tabFiddlerApplication.Log.LogString(oMsg.ToString());}保存后就可以在Fiddler右边栏的

2020-06-25 23:38:06 10849

原创 Fiddler抓取https设置图文详解

本文主要说明了自己在设置fiddler抓取https过程中所遇到的问题及解决步骤,特别是fiddler在设置证书的环节遇到的各种奇葩问题,特此分享!声明:本文为原创文章,转载请注明来源:https://www.cnblogs.com/joshua317/p/8670923.html很多使用fiddler抓包,对于http来说不需太多纠结,随便设置下就能用,但是抓取https就死活抓不了,出现诸如以下问题:creation of the root certificate was not suc

2020-06-25 23:36:38 9279

原创 Autohotkey 覆盖默认快捷键

通过对注册表进行下面的修改, 您可以禁用除 Win+L 和 Win+U 外的其他所有内置的 Windows 热键 (这种方法应该适用于所有操作系统, 但可能需要重启才生效,注册表命令regedit):HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer下添加:NoWinKeysREG_DWORD0x00000001(1)禁用Win+L: HKEY_CURRENT_USER\Software...

2020-06-25 23:33:21 9548

原创 AutoHotKey 常用命令及示例

颚化符::(~)一、示例(自动打开QQ声音)Loop ;循环体{WinWait, 与 qq009 交谈中,IfWinNotActive, 与 qq009 交谈中, , WinActivate, 与 qq009 交谈中,WinWaitActive, 与 qq009 交谈中,Controlclick, Button36 ;接受请求Sleep, 500Control, Check, true, Button34 ;打开声音Sleep, 100}return..

2020-06-25 23:32:27 13707

原创 MongoDB 添加和删除字段

1、LIKE模糊查询userName包含A字母的数据(%A%)-- SQL:SELECT * FROM UserInfo WHERE userName LIKE "%A%"-- MongoDB:db.UserInfo.find({userName: /A/})123452、LIKE模糊查询userName以字母A开头的数据(A%)-- SQL:SELECT * FROM UserInfo WHERE userName LIKE "A%"--MongoDB:db.UserInfo.fi

2020-06-25 16:57:45 9157

原创 PHP 获取类中所有成员属性的方法

1 2 3 4 $r = new ReflectionClass($this); Zend_Debug::dump($r->getConstants(), "Constants"); Zend_Debug::dump($r->getProperties(), "Properties"); Zend_Debug::dump($r->getMethods(), "Methods"); ...

2020-06-24 16:29:44 9812

原创 php 类中的常量、静态属性、非静态属性

一.类常量:在类中始终保持不变的值定义为常量类的常量不能使用访问限制修饰符,他是 public 的,可继承,可以被子类重写,访问类的常量必须使用双冒号 :: ,可以使用类名或类的实例来访问,因为是常量,所以名称不能使用表示变量的符号 $.常量的值必须是一个定值,不能是变量,类属性,数学运算的结果或函数调用。接口(interface)中也可以定义常量。自 PHP 5.3.0 起,可以用一个变量来动态调用类。但该变量的值不能为关键字(如 self,parent 或 static)。语法 :

2020-06-24 16:28:30 8893

原创 详解MySQL5.7新增的JSON数据类型

json据说是MySQL5.7新增数据类型,以下为学习笔记1)创建使用json数据类型的表:CREATE TABLE oper_log ( id INT NOT NULL AUTO_INCREMENT, oper_name VARCHAR(30) NOT NULL, oper_detail JSON DEFAULT NULL,#注意字段类型为json PRIMARY KEY(id));2)插入数据-- 插入含有json数组的记录INSERT INTO oper_log(ope

2020-06-24 09:25:58 9613

原创 php 在一个calss中use一个文件和在class外面use一个文件有什么区别 && 详解trait

class外是导入命名空间,class内是trait,function后的是变量捕获。trait详解:https://www.php.net/manual/zh/language.oop5.traits.php

2020-06-22 17:06:14 11104

原创 php 数组的相关处理函数 - 坚持更新,保证文章的实用性

一、键、值接作函数1.array_values($contact):不保留键名,按照索引,对数组排列2.array_keys($contact,'可选参数',‘可选参数true/false’):若设置可选参数,则按照可选参数返回键名,若不设置,直接返回数组的键名,false为不依赖默认参数类型3.in_array(‘value’,'$contact','可选参数true/false'):检查数组中是否存在某值,true类型必须完全一致,搜索值若为字符串,设置true后,则区分大小4.a

2020-06-22 10:43:49 8640

原创 ffmpeg m3u8 与 mp4 相互转换

ts 文件的切割,还跟原文件视频的 GOP 大小有关系(也就是两个 I 帧之间的时间间隔),因为任何一个 ts 分片第一帧必须是I帧,否则无法最快播放,并且第一帧不是 I 帧,对于播放器也是没有任何的意义,直接被播放器扔掉。默认的每片长度为 2 秒,m3u8 文件中默认只保存最新的 5 条片的信息,导致最后播放的时候只能播最后的一小部分(直播的时候特别注意)。当媒体流正在播放时,客户端可以选择从许多不同的备用源中以不同的速率下载同样的资源,允许流媒体会话适应不同的数据速率。.........

2020-06-20 16:40:24 11618

原创 ES集群health为yellow解决办法

Logstash导入数据后,Cerebro显示集群health的状态为yellow解决办法1 curl http://localhost:9200/_cat/indices\?v1 curl http://localhost:9200/_cluster/health?pretty=true1 curl -H "Content-Type: application/json" -XPUT 'http://localhost:9200/_settings' -d...

2020-06-19 12:28:44 11781

原创 Rabbit MQ 入门

Rabbit MQ是一个通用的消息中间件,支持AMQP,STOMP,MQTT等多种协议安装#在mac OSX下可以使用如下命令来安装 rabbitmqbrew install rabbitmq基本命令# ls -al ~/rabbitmq/3.7.14/sbin/total 1104drwxr-xr-x 10 jet admin 320 May 19 14:35 .drwxr-xr-x 37 jet wheel 1184 May 19 14:37 ..-

2020-06-18 14:15:23 8908

原创 MySQL事务的实现原理

开篇相信大家都用过事务以及了解他的特点,如原子性(Atomicity),一致性(Consistency),隔离型(Isolation)以及持久性(Durability)等。今天想跟大家一起研究下事务内部到底是怎么实现的,在讲解前我想先抛出个问题:事务想要做到什么效果?按我理解,无非是要做到可靠性以及并发处理。可靠性:数据库要保证当insert或update操作时抛异常或者数据库crash的时候需要保障数据的操作前后的一致,想要做到这个,我需要知道我修改之前和修改之后的状态,所以就有了undo

2020-06-18 13:57:57 8879

转载 es 在数据量很大的情况下(数十亿级别)如何提高查询效率啊?

面试题es 在数据量很大的情况下(数十亿级别)如何提高查询效率啊?面试官心理分析这个问题是肯定要问的,说白了,就是看你有没有实际干过 es,因为啥?其实 es 性能并没有你想象中那么好的。很多时候数据量大了,特别是有几亿条数据的时候,可能你会懵逼的发现,跑个搜索怎么一下 5~10s,坑爹了。第一次搜索的时候,是 5~10s,后面反而就快了,可能就几百毫秒。你就很懵,每个用户第一次访问都会比较慢,比较卡么?所以你要是没玩儿过 es,或者就是自己玩玩儿 demo,被问到这个问题容易懵逼,显示出你

2020-06-18 13:39:52 8694

原创 通俗讲解 同步、异步、阻塞、非阻塞 编程

# 真正意义上的 异步IO 是说内核直接将数据拷贝至用户态的内存单元,再通知程序直接去读取数据。# select / poll / epoll 都是同步IO的多路复用模式1.同步和异步# 同步和异步关注的是消息通信机制# 所谓同步,就是在发出一个*调用*时,没得到结果之前,该*调用*就不返回。但是一旦调用返回就得到返回值了,*调用者*主动等待这个*调用*的结果# 所谓异步,就是在发出一个*调用*时,这个*调用*就直接返回了,不管返回有没有结果。当一个异步过程调用发出后,*被调用者*.

2020-06-17 15:09:01 68526 3

cgo 用法demo代码

go 调用c++代码的示例

2023-05-17

centos7 rpm安装yum所需要的包

centos7 rpm安装yum所需要的包,总共有20个, 打包整理好,方便有需要安装yum的用户,包里所有的资源都来自于网易镜像中心(http://mirrors.163.com/centos/7/os/x86_64/Packages/)

2020-12-11

navicat 连接mysql、mongodb工具

navicat 连接mysql、mongodb工具,可以方便快捷操作mysql 8版本、mongodb 4版本

2020-11-24

elasticsearch 7.4.0 docker-compose文件

快速部署elasticsearch 7.4.0版本 单机三节点docker 容器,方便在本地开发环境部署

2020-11-13

changeWinKey.reg

通过该脚本,可以在Windowns系统下将左Alt键修改为Appskey键,将右边的Appskey键改成Ctrl键

2020-06-30

TabNumberIndicator.jar

jetbrain系列软件的一个插件,官方库的快捷键是Alt+数字切换标签页,因为个人习惯,我把它改成Ctrl+数字 切换标签页,分享给有需要又不会改源码的朋友。安装是在jetbrain软件的插件安装页面选择本地安装后在弹出的文件选择器中选择该文件安装重启即可

2020-06-30

dnmp.rar docker部署lnmp环境包

通过docker快速部署lnmp+redis环境,只要到文件根目录执行docker-composer up即可

2020-06-30

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

TA关注的人

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