- 博客(51)
- 资源 (1)
- 收藏
- 关注
原创 PHP常用算法
1.写一个排序算法,可以是冒泡排序或者是快速排序,假设待排序对象是一个维数组。//冒泡排序(数组排序)function bubble_sort($array){$count = count($array);if ($count 0) return false;for ($i = 0; $i $count; $i++) {for ($j = $count - 1; $j > $i; $j
2017-12-15 19:39:14 221
原创 php性能追踪与分析
Incl.Wall Time:方法执行花费的时间 (包含子函数)Excl.WallTIme方法本身执行所花时间(不包含子函数)Excl.CPU方法本身执行所花费的CPU时间(不包含子)Excl.MemUse:方法本身执行占用内存(不包含子)Incl.MemUse:方法执行占用内存(包含子函数)Incl.CPU方法执行所花费的CPU时间(包含子)ECPU%方法本身执行花费的CPU时间百分比。Ewall%方法本身执行所花费的百分比。ICPU方法所花费的CPU时间的百分比。IWal% 方法执行所花时间的百分比。
2023-11-11 21:30:32 385
原创 php使用sqlServer
PHP 安装php_sqlsrv php_pdo_sqlsrv。SqlServer驱动:msodbcsql。sqlServer扩展。
2023-10-22 15:59:14 312
原创 ES-mapping以及数据类型
1.核心数据类型 字符型: Text被用来索引长文本,再建立索引前会将这项文本进行分词,转化为词的组合,建立索引。允许检索但不能用来排序和聚合 Keyword:不需要进行分词,可用来检索过滤、排序和聚合 数字类型 byte/short/integer/long/double/float/data/binary3.Mappiing 支持的属性 "type":text: 一般文本使用(可被分词进行模糊查找)/keyword "analyzer...
2022-03-03 18:31:49 719
原创 gorm快捷查询手册
#gorm.modeltype Model struct{ Id uint `gorm:primaryKey` CreatedAt time.Time UpdatedAt time.Time DeletedAt gorm.DeletedAt `gorm:"index"`}#模型定义type User struct{ gorm.Model Nmae string}#连接dsn := "user:pass@tcp(127.0.0.1:3306)/d...
2022-02-24 17:40:52 2183
原创 php链路追踪molten
Molten可以认为是phptrace的的升级版,增加了可视化分布式等等等等的功能吧,主要用了phptrace的信息收集这块。功能:molten追踪php核心调用库运行时信息并且按照zipkin/optracing格式输出信息。 可以追踪`curl,pdo,mysqli,redis,mongodb,memcached` 这么多的运行信息。1.运行环境Linux_Alpha2.PHP版本7.23.一些依赖包:apk ad php7-dev libc-dev libcurl curl
2021-09-17 18:07:07 752
原创 OpenSSL SAN 证书
什么是 SANSAN(Subject Alternative Name) 是 SSL 标准 x509 中定义的一个扩展。使用了 SAN 字段的 SSL 证书,可以扩展此证书支持的域名,使得一个证书可以支持多个不同域名的解析。先来看一看 Google 是怎样使用 SAN 证书的,下面是 Youtube 网站的证书信息:这里可以看到这张证书的 Common Name 字段是 *.google.com,那么为什么这张证书却能够被 www.youtube.com 这个域名所使用呢。原因就是这是一张带
2021-08-09 18:29:57 6130
原创 mysql锁与实务隔离
多个进程或线程并发访问一个资源的机制性能:乐观锁、悲观锁数据库:1.读锁(共享锁):多个读操作可以同时进行且互不影响2.写锁(排他锁):当前写操作没有完成前,它会阻断其他写锁和读锁lock table users;unlock table users;lock table user write;原子性、一致性、隔离性、持久性并发问题:1.更新丢失:多个事务对同一行处理,后面的事务会覆盖前面的2.脏读:事务A读取到事务B修改尚未提交的数据3.不可重复读:事务A读
2021-07-01 09:18:24 90
原创 索引
1.什么是索引 索引就像是书的目录,是与表或视图关联的磁盘上结构,可以加快从表或视图中检索行的速度。索引中包含由表或视图中的一列或多列生成的键2.索引的优缺点 优点:提高数据查询速度 缺点:增加磁盘占用空间,增加数据增删改时间3.hash与B+树对比 hash B+树 时间复杂度 o(1) o(LogN) 优点 快速查找 支持范围与遍历/组合索引 缺点 不支持范围查找和遍历 全表扫面 ...
2020-05-22 10:32:52 242
原创 K8s
1.docker2.kubernetes查看资源kubectl get pods --all-namespaceskubectl get pods --namespace kube-system查看资源详细信息kubectl describe pod kubernetes-dashboard -n kube-system查看日志kubectl logs my_pod...
2020-04-10 17:42:21 203
原创 Xss与Csrf
1.XSS:跨站脚本攻击,Cross-Site Scripting,为了和前端的css避免重名,简称为XSS,是指通过技术手段,向正常用户请求的HTML页面中插入恶意脚本,执行。主要就是通过对用户输入的数据做过滤或者是转义,可以使用框架提供的工具类HtmlUtil。2.CSRF,即 cross site request forgery,跨站请求伪造,可以理解为重放攻击。比较常见的情况是,攻...
2020-04-06 21:44:32 136
原创 redis缓存穿透、雪崩原因与解决方案
redis技术就是NoSQL技术中的一种,但是引入redis又有可能出现缓存穿透,缓存击穿,缓存雪崩等问题。本文就对这三种问题进行较深入剖析缓存穿透:key对应的数据在数据源并不存在,每次针对此key的请求从缓存获取不到,请求都会到数据源,从而可能压垮数据源。比如用一个不存在的用户id获取用户信息,不论缓存还是数据库都没有,若黑客利用此漏洞进行攻击可能压垮数据库。 缓存击穿:key对应的数据...
2020-04-06 21:29:12 184
原创 redis分布式锁之php
在单进程的系统中,当遇到并发情况下,会出现一些数据异常的问题,但是如果这些数据是需要保证唯一性的话,那我们就希望在同一时刻,只能有一个线程在执行这块代码,通常我们一般都是通过简单的加锁或同步来实现并解决这个问题。但是以上都是单进程多线程的情况,如果出现多进程多线程,显然会出现问题。因为多线程之间是可以共享内存的,但是多进程之间是不行的,所以这个时候需要用到分布式锁。分布式锁常用实现方...
2020-04-06 20:41:28 209
原创 Composer原理
Composer作为PHP的包管理工具,为PHPer们提供了丰富的类库1.__autoload:尝试加载未定义的类2.spl_autoload_register:注册给定的函数作为 __autoload 的实现spl_autoload_register(function( $className ){ require $className . '.php';});//或...
2020-04-03 12:41:49 170
原创 go远程调用grpc
server:type MathUser struct {}type MathRequest struct { Min int Mix int}type MathResponse struct { Result int}func (m *MathUser) Add(r MathRequest, b *MathResponse) error { b.Re...
2020-03-28 20:43:53 271
原创 服务发现consul与etcd
1.consul启动节点:consul agent -dev -config-dir /etc/consul.d/查看节点:consul membersUI界面:http://localhost:8500服务查询:dns方式:dig @127.0.0.1 -p 8600 dev.firstservice.service.consulhttp方式:curl http://lo...
2020-03-28 16:13:09 719
原创 go 包依赖管理
GO111MODULE可以用环境变量 GO111MODULE 开启或关闭模块支持,它有三个可选值:off、on、auto,默认值是 auto使用国内代理go env -w GO111MODULE=ongo env -w GOPROXY=https://goproxy.cn,directexport GOPROXY="https://athens.azurefd.net"e...
2020-03-25 22:57:21 148
原创 go.protobuf7
文件以.proto后缀结构定义可以使message/service/enum一个message定义了一个请求或响应消息的消息格式一个service定义了rpc服务定义的方法————————————————syntax = "proto3";//版本号package main; //包名enum Foo{ FIRSTV_ALUE=1;//枚举}//定义...
2020-03-25 12:31:01 118
原创 go数据操作6
1.mysqlgo get github.com/go-sql-driver/mysqlgo get github.com/jmoiron/sqlxtype Person struct{ Userid int `db:user_id` Username string `db:"user_name"` Sex string`db:"sex"`}datab...
2020-03-24 21:27:48 161
原创 go并发编程5
进程:操作系统中的执行过程、资源分配和调度的独立单位线程:是进程执行的实体,是CPU调度和分配的基本单位协程:独立栈空间、共享堆空间、调度用户自己控制,是轻量级的线程1.goroutinego hello()GPMruntime.Gosched()runtime.Goexit()runtimegoMAXPROCS()2.channel(通道)var c...
2020-03-24 15:32:03 97
原创 go面向对象4
1.匿名字段2.接口inrerface是一组method的集合type writer interface(){ say()}接口类型变量可以存储(实现了该接口的实例)值接口和指针接受有区分空接口类型变量可以存储任何类型的变量(接口参数、map的值、类型断言)...
2020-03-24 11:55:39 141 1
原创 go函数与方法3
func test (x,y int ,s string)(int,string){ return x,y}值传递:值复制传递,不影响实际参数引用传递:址的拷贝,实际参数地址传递,影响实际值返回值:x,y/x,_:=test()匿名函数、闭包、递归defer(关闭文件、释放资源、数据库资源释放)异常处理defer func(){ if er...
2020-03-23 19:42:14 93
原创 go流程控制2
if a > 20 {}else{}witch mark{ case 10: default:}x.(type) select 会随机选择一个case,没有case则default,无default将阻塞 select{ case a: case b: default: }...
2020-03-23 13:08:20 99
原创 go基础一
1.声明:var、const、type、func2.内置类型与函数: bool、string、array、complex64、complex128 int8、int16、int32、int64 uint8、uint16、uint32、uint64 float32/float64 slice、map、channel3.内置函数 a...
2020-03-22 21:22:40 137
原创 小程序登录流程
客户端参数:code|data|ivcode->http->openid|session_key:https://api.weixin.qq.com/sns/jscode2session参数:appid,secret,js_code,grant_typesession_key|data|id->decryptData(解密)->用户基本信息/** * ...
2019-05-10 16:25:41 162
原创 php生成xls表格
下载扩展包PHPExcelhttps://github.com/PHPOffice/PHPExcel/tree/1.8/Classesfunction IntToChr($index, $start = 65){ $str = ''; if (floor($index / 26) > 0) { $str .= IntToChr(floor($i...
2019-05-10 15:45:47 612
原创 测试_adb
adb介绍全称是:Android Debug Bridge,即安卓调试桥,是安卓sdk的一个工具;下载:http://adbshell.com/upload/adb.zip端口管理 adb server与client通信的端口是5037;ADB命令分为三部分进行介绍,adb 命令,adb shell 命令,linux 命令区别:adb命令是adb这个程序自带的一些命令,而adb shell则是调用...
2018-03-16 14:36:41 403
原创 依赖注入
/**** 工具类,使用该类来实现自动依赖注入。**/class Ioc { // 获得类的对象实例 public static function getInstance($className) { $paramArr = self::getMethodParams($className); return (new ReflectionClass($clas...
2018-03-09 20:36:18 224
转载 nginx的配置和使用
#运行用户 user www-data; #启动进程,通常设置成和cpu的数量相等 worker_processes 1; #全局错误日志及PID文件 error_log /var/log/nginx/error.log; pid /var/run/nginx.pid; #工作模式及连接数上限 events { ...
2018-03-09 09:49:51 170
原创 设计模式详解及PHP实现
设计模式(Design Patterns)设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 –百度百科In software engineering, a design pattern is a general reusable solution to a common...
2018-03-08 17:40:53 302
原创 PHP之PSR规范
PSR 是 PHP Standard Recommendations 的简写,由 PHP FIG 组织制定的 PHP 规范,是 PHP 开发的实践标准。PSR-1 基础编码规范PHP代码文件 必须 以 <?php 或 <?= 标签开始;PHP代码文件 必须 以 不带 BOM 的 UTF-8 编码;PHP代码中 应该 只定义类、函数、常量等声明,或其他会产生 副作用 的操作(如:生成文件...
2018-03-08 16:42:59 181
原创 PHP规范
代码规范1.文件1.1 文件命名C和M(控制器和模型)首字母必须大写,遵守驼峰格式,例如:UserBankController.php1.2 文件格式所有文件必须是UTF-8不带BOM1.3 文件内容PHP文件第一行必须是'<?php' ,尾部可以不写'?>';2.代码2.1 类名首字母必须大写,遵守驼峰格式,例如:UserBankController2.2 方法名首字母必须小写,遵守...
2018-03-08 14:33:03 620
原创 进程监控工具supervisor
守护进程(Daemon)是一种运行在后台的特殊进程,它独立于控制终端并且周期性的执行某种任务或等待处理某些发生的事件。监控服务器的主要后台进程,并在出现问题是自动重启。使用原因1、它是微软官方文档推荐的,降低学习成本。2、它并不一定是最好的,但一定是文档最全的。supervisord是supervisor的服务端程序。supervisorctl就是client的客户程序。安装supervisor-...
2018-03-08 14:32:41 449
原创 mysql之mysqlnd
MYSQL:This extension is deprecated as of PHP 5.5.0, and has been removed as of PHP 7.0.0. MYSQLI: MySQL Improved Extension MySQLND: MySQL Native Drive PDO:The PHP Data Objects。extension defines
2018-01-05 20:53:21 351
原创 编译好的PHP环境中安装PHP扩展模块
进入php源码包中,找到需要安装的扩展模块目录。/usr/local/php/bin/phpize./configure --with-php-config=/usr/local/bin/php-configmake && make install
2018-01-05 20:40:15 474
原创 Mysql优化之limit
SELECT * FROM table1 LIMIT offset, rows上述SQL语句的实现机制是:从“table”表中读取offset+rows行记录抛弃前面的offset行记录,返回后面的rows行记录作为最终结果。这种实现机制存在一个弊端:虽然只需要返回rows行记录,但却必须先访问offset行不会用到的记录。对一张数据量很大的表进行查询时,offset值可能
2017-12-18 20:30:48 147
原创 微信与QQ授权登录
一、微信授权1.授权页面跳转至微信授权地址https://open.weixin.qq.com/connect/oauth2/authorize?appid=WX_APP_ID&redirect_uri=$callback&response_type=code&scope=snsapi_base&state=state&#wechat_redirect2.静默授权成功后,自动跳转至回调
2017-12-16 17:29:42 7577
原创 AES密钥与RSA密钥
AES密钥是什么高级加密标准(英语:Advanced Encryption Standard,缩写:AES),是目前对称密钥加密中比较通用的一种加密方式。AES密钥有什么用支付宝开放平台所有OpenAPI均支持对接口的请求内容和响应内容进行AES加密,部分OpenAPI强制要求AES加密。加密后,在网络上传输的接口报文内容将会由明文内容变为密文内容,可以大大提升接口内容传输
2017-12-16 14:36:35 16483
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人