自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(71)
  • 收藏
  • 关注

原创 docker创建nginx容器实现负载均衡

包括nginx-1.conf,nginx-2.conf,nginx-3.conf等。其中nginx-2,nginx-3的模块配置一个虚拟主机,使其能够访问就可以。nginx-1的配置如下。为了方便于搭建和管理,我们将使用docker-compose去创建多个nginx容器,以下是相关的docker-compose.yml文件。启动前,除了配置好docker-compose文件外,还需要提前准备好nginx的配置文件。配置好后,运行docker-compose up -d 即可。

2023-02-03 14:19:28 322

原创 字符编码原理的理解

另外,他们又把所有的空格,标点符号,数字,大小写字母分别用连续的字节状态表示,一直编到了第127号,这样计算机就能存储英文了,大家觉得这个方案可行,于是就称之为ASCII编码。一个字符的Unicode编码是确定的,但是在实际传输过程中,由于不同系统平台的设计不一致,以及处于节省空间的目的,对Unicode编码的实现方式有所不同。ISO-8859-1编码是单字节编码,向下兼容ASCII,是ASCII的扩展的一种,该字符集支持部分欧洲使用的语言,两个字节,在MAC机和PC机上,对字节顺序的理解是不一致的。

2022-12-01 11:33:31 558

原创 PHP编码技巧

sortTable变量开辟了占用空间,但换的更高的速度;语言结构的好处:比函数快,语言结构在错误处理上比较鲁棒,函数在php.ini上可以被禁用.类的命名必须遵循大写开头的驼峰命名,而方法遵循小写驼峰命名规范。>这个括号:因为可以保证纯的PHP代码,不然容易在。同环境下的不同的php的php.ini里面的错误设置都可能不一样。1. 把常量放前面,用"1==$a" 替换 "$a==1"比如,当我们把"=="打成"="时, "1=$a"就会报错。命名的重要,命名需要有辨识度,易懂,有实际含义。

2022-11-25 10:08:37 384

原创 PHP深入

通俗的讲workerman就是用PHP写的一个更底层更通用的网络服务框架实际上workerman类似一个PHP版本的Nginx,核心也是多进程+Epoll+非阻塞io。workerman每个进程能维持上万并发连接。由于本身常驻内存,不依赖Apache,Nginx,PHP-FPM这些容器,所以永远超高的性能。

2022-11-01 15:11:26 1907

原创 PHP异常错误处理

另外,还可以使用 try-catch-finally三层嵌套,其中try 中return 后finally会继续执行,如果finally中也有 return;但是这些错误我们都是难以捕获的(就是我们认为代码会一切正常,谁知它却报了个Bug)我们最好调用 try-catch 去处理,这样很多未知的错误我们都可以捕获到。规定在哪个错误报告级别会显示用户定义的错误。默认是 "E_ALL"。其次 try-catch 是可以嵌套的使用的,规定发生错误时运行的函数。

2022-10-31 15:03:05 179

转载 Linux目录

var : 这是一个非常重要的目录,系统上跑了很多程序,那么每个程序都会有相应的日志产生,而这些日志就被记录到这个目录下,具体在/var/log目录下,另外mail 的预设放置也是在这里。值得提出的是/bin, /usr/bin 是给系统用户使用的指令 (除root外的通用用户),而/sbin,/usr/sbin 则是给root 使用的指令。/bin, /sbin, /usr/bin, /usr/sbin :这是系统预设的执行文件的放置目录,比如ls 就是在 /bin/ls 目录下的。

2022-10-18 11:49:41 72

原创 linux启动过程

Boot Loader通过initrd 在内存中建立一个供内核使用的临时文件系统,然后由内核程序接管后续启动流程。它会首先调用/etc/rc.d/rc.sysinit脚本,完成设置环境变量,交换分区,初始化系统时钟等工作。2. /etc/rc.d/init.d/* 写shell脚本,然后在/etc.rc*.d 中建立软连接。,执行相应运行级别下的程序脚本(/etc/rc.d/rc.d/*)启动或杀掉相应进程。1. /etc/rc.d/rc.local 中写的启动命令。显示给用户一个选择界面。

2022-10-17 17:48:31 611

转载 linux

UNIX诞生于一个开放的、相互学习研究的时代,UNIX系统的源码在世界各地流传、分享,一些热衷于UNIX的人,在源码的基础上不断研究UNIX,并对其进行改善,极大地促进了UNIX的发展与优化。Linux内核的源码是开放的,自1991年之后,越来越多的开发人员参与到了Linux内核代码的编写、修改和维护工作中。接触到了MINIX操作系统,在学习中萌生了自主开发操作系统的想法并付诸实践,随之Linux内核诞生。,GNU是”GNU is Not Unix“的递归缩写,该计划的目标是创建一套完全自由的操作系统。

2022-10-17 17:24:39 334

原创 mysql优化之多表优化实例

如果还有第三个参与 Join ,则通过前两个表的 Join 结果集作为循环基础数据,再一次通过循环查询条件到第三个表中查询数据,第四个 Join 、第五个 Join 都是按照前面的结果集作为循环的基础数据,再去通过循环查询得到最终的数据,以此类推。如果索引元组中的数据不满足推送的索引条件,那么就直接过滤掉该条数据记录, 从而不从回表查询,并且不需要返回到server层去比较数据。3.3 使用join时,mysql会选择数据量比较少的表作为驱动表,大表作为被驱动表(不存在索引的情况下)

2022-10-13 17:59:19 614

原创 mysql之SQL优化实例

union和union all的区别是,union会自动压缩多个结果集合中的重复结果,而union all则将所有的结果全部显示出来,不管是不是重复。所谓的函数索引其实本质上解释还是btree索引,实现的方式主要是通过在数据表中新增一个字段用来存放函数字段列,然后对这个字段定义一个索引。若null的列为索引时,每个索引记录需要一个额外的字节。很多时候我们需要检查数据库的设计是否合理,比如我们使用允许为空的字段修改为0或者其他特殊字符代替,,对结果的合并,排序等操作需要费大量的CPU和内存资源,

2022-10-11 20:55:04 465

原创 浅谈mysql之分析工具

mysqlslap是mysql自带的基准测试工具。基准测试分为两种主要的策略:一是针对整个系统的整体测试(也被称为集成式),二是单独测试MYSQL(也被称为单组件式)其优点: 查询数据,语法简单,灵活容易使用.该工具可以模拟多个客户端同时并发的向服务器发出查询更新,给出了性能测试数据而且提供了多种引擎的性能比较。上面是简单的一个例子,我们进入到mysql的bin目录便可以执行改命令,其中 -c 代表用户数,- i 代表执行几次,输入命令回车输出mysql密码即可得出压测结果。

2022-09-22 17:24:01 876

原创 浅谈mysql索引

平衡二叉树:而二叉树又有平衡与否的问题,原因是在于虽然二叉树可以使用二分查找法,每次先找中间值,然后进行值判断,小于则左边找,大于则向右边找。Btree:为了提升查找效率,在每个节点上尽可能的存储多点数据,一次磁盘io就尽可能的加载数据到内存,所以把树的高度降低,节点提升数据存储,这就有了B树。不同的存储引擎使用不同的结构:比如MyIsam跟innodb,其底层使用的是B+树,如果是Memory存储引擎,那么对应的底层数据结构是Hash表。AVL优点:很好的查找性能,不存在极端的低效查找情况。

2022-09-20 16:52:57 317

原创 浅谈mysql 事务与锁

它的开销介于表级锁和行级锁中间,也可能会出现死锁,锁定粒度也介于表级锁和行级锁中间,并发度也介于表级锁和行级锁中间。谓表级锁,它直接锁住的是一个表,开销小,加锁快,不会出现死锁的情况,锁定粒度大,发生锁冲突的概率更高,并发度最低。仅仅从锁的角度来说,表级锁更加适合于以查询为主的应用,只有少量按照索引条件更新数据的应用,比如大多数的。行级锁,它直接锁住的是一条记录,开销大,加锁慢,发生锁冲突的概率较低,并发度很高。就将请求的锁授予该事务,如果两者是冲突的,那么该事务就要等待锁释放。

2022-09-19 15:02:34 420

转载 任务协作管理工具 Trello 使用简介

为什么使用 Trello在和一些小伙伴聊天的过程中,发现大家都有一个类似的困惑。每天听到看到不少好东西都会产生「深究一下」的欲望,但是这些想法和素材要么被忘记了要么就因为时间精力没空继续展开学习。于是就萌生了建立一个「写作素材共享协作小组」的想法,加入这个小组的成员每周共享自己发现或者感兴趣的素材,然后在所有素材中每周至少输出一篇相关的文章在小组内分享。类似于你买香蕉我买苹果,大家聚在一起分着...

2020-01-08 15:17:29 2394

转载 Gogs:可能是比Gitlab更好的选择

译者注:看到一篇介绍能简单自建git托管服务的项目—— Gogs ——的文章,感觉这个项目很棒,翻译给大家参考一下。这个项目的四位主要开发者都是中国人,该项目今天蝉联 GitHub Go 语言 Trending 第一。(づ ̄3 ̄)づ莫名的自豪感油然而生。希望能有更多优秀的国产项目出现~Gitlab是一个很棒的Git托管服务,几乎像GitHub一样强大。 但是,有没有能和Gitlab/Gi...

2020-01-08 14:49:19 3427

原创 Web以及网络基础(图解http笔记01)

杂记1.通过发送请求获取服务器资源的web浏览器都可以成为客户端。2.http通常被翻译为超文本传输协议(约定俗成的),“超文本转移协议”更准确。3.www(万维网)基础技术:HTML(超文本标记语言) ,HTTP协议,和指定文档所在地址的URL.TCP/IP基础1.目前使用的网络实在tcp/ip协议族的基础上运行的,而http是他内部的一个子集。2.计算机之间通信就...

2020-01-05 13:19:04 175

原创 php 图片压缩类

PHP图片压缩类,部分来源于网络(侵则删),部分自己改写拼凑成一个类。该类封装了了PHP7没有的imagecreatefrombmp等的相关方法(7.2有提供这个方法)<?php/** * Created by PhpStorm. * User: Administrator * Date: 2019/12/18 * Time: 9:56 */namespace App...

2019-12-28 00:44:18 355

原创 用户搜索之根据同城同行优先排序

在用户查询时,有时候有需要把“同城”,“同行”等相关度教高的用户排在前面的需求。而使用sql的排序可以简单的实现这个需求,但也有不全面的地方。//根据同乡同行排序$data = $userModel->with(['hometown','trade','city'])->orderByRaw("ABS({$self->trade_id}- trade_id) + ...

2019-11-26 14:43:35 399

转载 php采集模拟点击伪造IP,伪造浏览器useragent伪造来源防反爬虫例子

先上两个文件 index.php 一个curl.phpindex.php是我们要采集的。以下是源码$client_ip = getip(); $referer = getreferer(); $allow_ip = '192.168.1.100'; $allow_referer = 'http://www.amztool.cn'; $useragent=$_SER...

2019-11-15 15:24:01 627

原创 Laravel ORM中with,where, has,wherehas的使用

共同之处,这三个函数的参数,都是 model 中的 relationship function 的名字。1 对 N N 对 Nwith类似于 SQL 中的 left join。左侧数据会全部显示。with 是 eager loading,即预加载关系数据。has类似于 SQL 中的 inner join。当右侧有数据时才会显示。注意,has 跟 whereHas 并...

2019-10-20 14:51:25 5604

原创 composer常用命令

一. selfupdate更新 composer 本身,请经常执行 composer selfupdate 以保持 Composer 一直是最新版本。composer selfupdate 等价于 composer self-update二. composer init根据设置生成一个特定的composer.json文件,设置如下root@dduan:/home/ddu...

2019-09-24 11:25:02 508

原创 红包,大转盘等游戏设计

一.起因最近在做一些关于红包和大转盘的项目,从项目设计到实施,中间花费了不少的心思。所以趁着现在有空记录下。二.红包红包的产品设计我们可以参考微信红包的产品设计,分为普通红包和拼手气红包。普通红包就是把金额均等平分,而拼手气红包则是把一个固定的金额随机分成不等的份额。思路:我们可以设计一个一个红包金额表,红包数据我们可以提前生成,然后再把红包金额放入到redis中去,用redi...

2019-07-01 22:51:50 587

原创 jQuery ajax中serialize()方法提交参数

说明使用jQuery.ajax()进行表单提交时,需要传递参数,最直接的方法便是使用Form的serializa()将表单序列化,前提只是将Form表单中的name属性与数据库的字段名保持一致便可详细说明.serialize() 方法创建以标准 URL 编码表示的文本字符串。它的操作对象是代表表单元素集合的 jQuery 对象。.serialize() 方法可以操作已选取个别...

2019-06-15 10:46:55 875

转载 PHP解析URL返回组成部分

parse_url(PHP 4, PHP 5, PHP 7)parse_url—解析 URL,返回其组成部分说明parse_url(string$url[,int$component= -1] ) :mixed本函数解析一个 URL 并返回一个关联数组,包含在 URL 中出现的各种组成部分。本函数不是用来验证给定 URL 的合法性的,只是将其分解为下面...

2019-05-16 15:33:58 643

原创 PHP使用curl_multi实现并发请求

php的curl_mulit系列的函数可以实现并发请求,抓取页面各函数作用解释:curl_multi_init()初始化一个curl批处理句柄资源。curl_multi_add_handle()向curl批处理会话中添加单独的curl句柄资源。curl_multi_add_handle()函数有两个参数,第一个参数表示一个curl批处理句柄资源,第二个参数表示一个单独的curl句柄...

2019-05-09 11:24:40 763

原创 Docker学习笔记2

一 . 基础命令1. docker info 查看docker信息2. docker version 查看docekr的版本信息3. service docker start 开启docker服务3. docker search 从Docker Hub中查找镜像 , 选项说明: -s :列出收藏数不少于指定值的镜像docker search -s 60 php...

2019-04-03 10:27:42 196

原创 Docker学习笔记1

一.docker简介1.Docker 最初是 dotCloud 公司创始人 Solomon Hykes 在法国期间发起的一个公司内部项目,它是基于 dotCloud 公司多年云服务技术的一次革新。2.Docker 是一个开源的应用容器引擎,基于Go 语言并遵从Apache2.0协议开源。3.Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任...

2019-03-30 14:42:12 333

原创 PHP观察者模式

一.观察者模式特点解释:观察者模式(Observer),当一个对象的状态发生改变时,依赖他的对象会全部收到通知,并自动更新。场景:一个事件发生后,要执行一连串更新操作.传统的编程方式,就是在事件的代码之后直接加入处理逻辑,当更新得逻辑增多之后,代码会变得难以维护.这种方式是耦合的,侵入式的,增加新的逻辑需要改变事件主题的代码,而观察者模式实现了低耦合,非侵入式的通知与更新机制二...

2019-03-29 17:48:41 576

原创 PHP实现适配器模式

一.适配器模式的特点适配器模式核心思想:把对某些相似的类的操作转化为一个统一的“接口”(这里是比喻的说话)--适配器,或者比喻为一个“界面”,统一或屏蔽了那些类的细节。适配器模式还构造了一种“机制”,使“适配”的类可以很容易的增减,而不用修改与适配器交互的代码,符合“减少代码间耦合”的设计原则。角色:目标(Target)角色:定义客户端使用的与特定领域相关的接口,这也就是我们所期...

2019-03-29 16:32:15 1825

原创 PHP实现注册树模式

一. 模式特点特点: 将对象注册到一个类的成员变量中,实现全局访问应用场景: 某些重要的值需要全局调用时可以采用这种模式二. 代码要点.封装多个静态方法,实现设置值,取值和销毁值Class Register{ public static $treeList; //设置 static public function set($key,$valu...

2019-03-27 18:21:03 455

原创 PHP实现工厂模式

一. 工厂模式的特点特点 :将调用者和创建者分离,调用者直接向工厂类请求获取调用对象,减少代码耦合,提高系统的维护性和扩展性应用场景:有多个产品类时就要用到工厂模式,比如在数据库连接中,我们可以采用多种数据库连接方法,有mysql扩展,mysqli扩展,PDO扩展等,在这种情况下我们可以一个扩展对应一个产品类,然后采用工厂模式。二.代码要点1.分两部分,产品类和工厂类,其中产...

2019-03-27 16:20:43 2219

原创 PHP实现单例模式

一. 单例模式的特点一个类在整个应用中只能有一个实例 该类必须自行在内部创建这个实例 必须可以自行向整个系统提供这个实例应用场景: 在一个应用中会存在大量连接数据库的操作,如果不用单例模式,那每次都要new操作,但是每次new都会消耗大量的内存资源和系统资源,而且每次打开和关闭数据库连接都是对数据库的一种极大考验和浪费。二 . 代码要点1. __construct和__clon...

2019-03-27 15:28:01 908

原创 PHP Trait

Trait自 PHP 5.4.0 起,PHP 实现了一种代码复用的方法,称为 trait [单词意思为: 特点,特性]。Trait 是为类似 PHP 的单继承语言而准备的一种代码复用机制。Trait 为了减少单继承语言的限制,使开发人员能够自由地在不同层次结构内独立的类中复用 method。Trait 和 Class 组合的语义定义了一种减少复杂性的方式,避免传统多继承和 Mixin 类相...

2019-03-26 11:23:20 142

原创 PHP超全局变量

1.超全局变量的由来 因为在PHP的运行当中,经常需要一些变量去存储运行环境的一些参数,以及设置,这些变量称为预定义变量。 而从 PHP 4.1.0 开始,PHP 提供了一套附加的预定数组,这些数组变量包含了来自 web 服务器(如果可用),运行环境,和用户输入的数据。这些数组非常特别,它们在全局范围内自动生效,例如,在任何范围内自动生效。因此通常被称为自动全局变量(autog...

2019-03-15 21:57:57 237

原创 PHP常用基础函数总结1

一. 变量检查 [empty(), isset(), is_null() 的区别 ]在日常开发中,我们经常需要判断变量的值,如我们需要判断某个方法里面的实参是否是“空”,而我们经常会用到empty,isset,is_null等函数。1.empty() : 判断变量是否是零是否是空,是则返回true,相反则返回false.需要注意的是,以下几种类型都会被列入“零”和“空”的范畴."...

2019-03-03 14:35:43 286

原创 PHP7新特性2

1.use声明新特性  在日常开发中,我们需要通过命名空间中的PHP声明来显示引入很多类,函数,常量。这导致了在文件顶部需要写很多的use声明,显得很繁琐。  为解决这个问题,PHP7引用了批量的use声明,分别由1.非混合模式的use声明。2.混合模式的use声明。 3.复合模式的use声明。下面是非混合模式的use声明。use app\admin\controller\{Bo...

2019-02-12 22:10:05 166

原创 PHP7新特性1

一. 前言PHP7具有很多用于编写高性能,高效能的新特性,同时也移除了一些历史版本中过时的特性,若使用过时的特性的话,在PHP7中会触发一个Error错误。目前大多数的致命错误都可以被异常捕获。所以PHP不再显示一些不标准的致命错误,取而代之的是抛出一个携带很多可用信息的异常。二.OOP特性1.类型声明:函数或者是对象的方法都可以使用在PHP7之前,我们在函数和类之间传递参数时不需...

2019-02-09 14:44:43 212

原创 《大教堂与集市》[美] Eric Raymond

一.简述这本书在业界的评价极高,被誉为开源运动的圣经,此书的作者为Eric Raymond,是美国的一位软件开发人员。此人在1996年接管了开源电子邮件软件“popclient”的开发,并将其重命名为Fetchmail,之后不久,他于1997年发表了一篇名为《大教堂与集市》的文章,此文描述了他对开源软件开发的看法,以及为什么使用“集市”的开发模式。同年五月,他在年度Linux Kongress...

2019-01-20 12:35:12 791

原创 返回Ajax异步加载所获取的数据

//异步获取数据function getData(site_id){ $.ajax({ type: "post", url: "{:url('Order/getSiteOrder')}", data: { site_id:site_id, }, ...

2019-01-18 09:54:01 846

原创 jq查看某对象是否含有某属性或对象

 if(data.hasOwnProperty('user')){ console.log('data has user property'); }else{ console.log('this property not exist'); }  

2019-01-18 09:41:34 1259

空空如也

空空如也

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

TA关注的人

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