06 2021 档案
摘要:my_count 代表的是 权重或者 本来持有的数量 看一下自己的想要达到的预期效果 needEvenlyCount 是给定需要分配的数量 先对myData 进行一个按 my_count的一个排序,array_multisort, array_column 等数组方法进行使用,如何使用就不在此多讲了
阅读全文
摘要:首先,要实现多任务,通常我们会设计Master-Worker模式,Master负责分配任务,Worker负责执行任务,因此,多任务环境下,通常是一个Master,多个Worker。 如果用多进程实现Master-Worker,主进程就是Master,其他进程就是Worker。 如果用多线程实现Mas
阅读全文
摘要:因为我们都知道redis 是基于内存的,而系统的内存是有限的,那么问题来了? 既然内存是有限的,比如redis就只给分配了10G的内存,你却要往里硬怼20G的数据,会咋办?毫无疑问,当然会被干掉10G的数据了, 那问题又来了,干掉拿些数据呢?又保留哪些数据?我们当然希望干掉那些不常用的,保留常用的数
阅读全文
摘要:redis 定义 redis: Remote Dictionary Server 的缩写,redis是一个开源的使用 ANSI C 语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value 数据库,并提供多种语言的 API。它通常被称为数据结构服务器,因为值(value)可以是 字符串(
阅读全文
摘要:TCP/IP 协议为什么诞生? 在全世界各个地方,各种各样的电脑运行着各自不同的操作系统为大家服务,这些电脑在表达同一种信息的时候所使用的方法是千差万别。就好像圣经中上帝打乱了各地人的口音,让他们无法合作一样。计算机使用者意识到,计算机只是单兵作战并不会发挥太大的作用。只有把它们联合起来,电脑才会发
阅读全文
摘要:Internet地址结构 目前的IP版本有4和6两种 IPv4表示方法: 十进制:每一组范围是[0~255],如:255.255.255.255 二进制:11111111 11111111 11111111 11111111 IPv6地址长度是128位:由8块(或8个字段)组成,每一块都包含四个16
阅读全文
摘要:定义: 协议对于事务处理没有记忆性,例如客户端发http请求给服务端后再发一次,服务器不知道第二个请求是刚才那个用户发的。 因为HTTP的无状态,因而会产生对应的问题 设想一个场景,用户小明在网站上购物,登录确认一下小明的身份跳转进购物网页,但是下一秒服务器就不认识小明了,购物或者添加购物车的过程中
阅读全文
摘要:HTTP和HTTPS的区别: HTTP 是超文本传输协议,信息是明文传输,存在安全风险的问题。HTTPS 则解决 HTTP 不安全的缺陷,在 TCP 和 HTTP 网络层之间加入了 SSL/TLS 安全协议,使得报文能够加密传输; HTTP 连接建立相对简单, TCP 三次握手之后便可进行 HTTP
阅读全文
摘要:我们通常熟悉的 http 版本是 1.0 和 2.0,但是都很少知道它的演变过程,下面就带领大家粗略的认识一下 演变时间时间图 http/0.9 初代版本,只有一个get方法,纯文本,html格式,是典型的无状态连接。(无状态是指协议会与事务处理没有记忆功能,对同一个请求没有上下文关系,每次请求都是
阅读全文
摘要:有前面一篇的客户端的请求报文解说,当然就有服务端的响应报文之说 不多说,先上个图 HTTP响应报文同样也分为三部分,有状态行、首部行、实体 状态行:HTTP响应报文的第一行状态行包括三个字段:协议版本、状态码与原因短语。 状态码: 1xx:这一类型的状态码,代表请求已被接受,需要继续处理。这类响应是
阅读全文
摘要:当前服务端和客户端的交互,都是通过http 协议交互的,那么一个http 具体包含哪些内容呢,今天我们就来了解一下。 HTTP有两种报文:请求报文和响应报文,具体介绍如下 HTTP请求报文 HTTP请求报文主要包括请求行、请求头部以及请求的数据(实体)三部分 请求行(HTTP请求报文的第一行) 请求
阅读全文
摘要:很少人知道http三次握手工作原理,都只知道一个大概的概念,有三次握手这个词,今天就带大家分析一下三次握手是怎么工作的,流程是什么样的 三次握手简易示意图如下: 详细参数如下 第一次建立连接时,客户端发送SYN包(seq=j)到服务器,并进入SYN_SENT状态,等待服务器确认;SYN:同步序列编号
阅读全文
摘要:理解PHP垃圾回收机制GC(Garbage Collection)之前,先了解一下变量的存储。 在php 手册中已经讲的很清楚了 基础定义: https://www.php.net/manual/zh/features.gc.refcounting-basics.php 可以去这里翻翻手册看一下 简
阅读全文
摘要:定义: 装饰器模式又叫装饰者模式。装饰模式是在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。 适用场景: 需要动态的给一个对象添加功能,这些功能可以再动态的撤销。 需要增加由一些基本功能的排列组合而产生的非常大量的功能,从而使继承
阅读全文
摘要:原型模式的作用:对象克隆以避免创建对象时的消耗 特点: 与工厂模式类似,都是用来创建对象。 与工厂模式的实现不同,原型模式是先创建好一个原型对象,然后通过clone原型对象来创建新的对象。这样就免去了类创建时重复的初始化操作。 原型模式适用于大对象的创建,创建一个大对象需要很大的开销,如果每次new
阅读全文
摘要:定义: 观察者模式(Observer),当一个对象状态发生变化时,依赖它的对象全部会收到通知,并自动更新。 目的: 一个事件发生后,要执行一连串更新操作。传统的编程方式,就是在事件的代码之后直接加入处理的逻辑。当更新的逻辑增多之后,代码会变得难以维护。这种方式是耦合的,侵入式的,增加新的逻辑需要修改
阅读全文
摘要:策略模式:将一组特定的行为和算法封装成类,以适应某些特定的上下文环境。 假如有一个电商网站系统,针对男性女性用户要各自跳转到不同的商品类目,并且所有的广告位展示不同的广告。在传统的代码中,都是在系统中加入各种if else的判断,硬编码的方式。如果有一天增加了一种用户,就需要改写代码。使用策略模式,
阅读全文
摘要:什么叫适配: 适配器模式其实也是一种为了解耦的设计模式,为了让客户端的调用变得更简单统一,将源接口转换为目标接口的过程封装到特定的过程中,这个过程就叫适配 目的: 适配器模式将原本不兼容的接口转换为客户期望的接口,使得原本由于接口不兼容而不能一起工作的类能够一起工作。 应用场景: 封装有缺陷的接口设
阅读全文
摘要:注册树模式当然也叫注册模式,注册器模式。注册树模式通过将对象实例注册到一棵全局的对象树上,需要的时候从对象树上采摘的模式设计方法 为什么要采用注册树模式? 单例模式解决的是如何在整个项目中创建唯一对象实例的问题,工厂模式解决的是如何不通过new建立实例对象的方法。 那么注册树模式想解决什么问题呢?
阅读全文
摘要:作用:提供获取某个对象实例的一个接口,同时使调用代码避免确定实例化基类的步骤,实际上就是建立一个统一的类实例化的函数接口,完成统一调用,统一控制。 工厂模式也分为三种: 工厂模式 抽象工厂模式 工厂模式 <?php // 接口 interface ToData { public function g
阅读全文
摘要:单例模式 记住口诀三私一公 单例模式是最常见的模式之一,在Web应用的开发中,常常用于允许在运行时为某个特定的类创建仅有一个可访问的实例。 特点 $_instance必须声明为静态的私有变量; 构造函数和析构函数必须声明为私有,防止外部程序new 类从而失去单例模式的意义; getInstance(
阅读全文
摘要:不论是什么语言开发,都离不开设计模式,在我们php知识里面,很多时候都在涉及到设计模式,常用的框架里面几乎都有用到,只是我们很少留意这些,所有很有必要了解学习一下 php设计模式其实很多种,但我们这里将的是常见的设计模式,就是人们常说的八大设计模式 单例模式 工厂模式 注册模式 适配器模式 策略模式
阅读全文
摘要:exif 类函数有如下几个 exif_imagetype exif_read_data (read_exif_data 别名)exif_tagnameexif_thumbnail exif_imagetype 判断一个图像的类型 exif_read_data 从 JPEG 或 TIFF 文件中读取
阅读全文
摘要:别说什么一见钟情,不过就是见色起意。 针对mysql的事务,四大特性中的隔离性,就需要靠事务锁进行实现 根据不同的划分,可以将锁划分为几种方式: 按照粒度划分:行锁、表锁、页锁 按照使用方式划分:共享锁、排他锁 按照思想划分:悲观锁、乐观锁 粒度划分(行锁,表锁,页锁) 表锁:在操作数据时会锁定整张
阅读全文
摘要:宽容别人,其实也是给自己的心灵让路。 结构定义:(c语言) typedef struct AVLNode *Tree; typedef int ElementType; struct AVLNode{ int depth; //深度 Tree parent; //父节点 ElementType va
阅读全文