IPv4上建立IPv6隧道技术

升级Nginx, 添加ipv6模块 下载最新版nginx源码并解压编译 wget http://nginx.org/download/nginx-1.17.6.tar.gz tar -zxvf nginx-1.17.6.tar.gz cd nginx-1.17.6 编译nginx,添加ipv6模块应用,编译命令: ./configure --prefix=/usr/local/ng...

Read more

邀请码实现(附PHP、GO、Java实例)

有的论坛、邮箱、博客,在注册时需要一种特殊的通行证——即邀请码(全称:邀请注册码),邀请码相当于你用一个软件要输入注册码一样,它和现实生活中的请柬是一个作用,只有收到邀请码,才能注册帐号。当论坛开启邀请注册后,邀请码成为注册论坛的必要条件,要想注册一个ID,就必须获得一个有效的邀请码,这时普通注册功能一般暂停。 目前很多APP都会为每一个用户生成一个邀请码,用以激励用户邀请其他人下载注册。例如U...

Read more

PHP中array_merge()和array1+array2的区别分析

在PHP中使用array_merge()和array1+array2的方式进行数组合并操作时,但两者效果并不相同 当两个数组都为索引数组时 使用array_merge()函数进行数组合并时,其键名从 0 开始进行重新索引使用array1+array2进行数组合并时,出现相同键名的值,后面键名相同的会被抛弃 $array1 = array(1 => 2, 2 => 4); ...

Read more

关系数据库的规范化

规范化 Normalization一个低一级范式的关系模式通过模式分解(Schema Decomposition)可以转换为若干个高一级范式的关系模式的集合的过程。关系数据库中的关系需要满足一定的要求,不同程度的要求称为不同的范式。满足最低要求的称为第一范式,简称1NF,这是最基本的范式;在第一范式的基础上进一步满足一些新的要求称为第二范式(2NF);以此类推,再进一步的范式是第三范式(3NF)及...

Read more

十大经典排序算法

0、算法概述0.1 算法分类十种常见排序算法可以分为两大类: 比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此也称为非线性时间比较类排序。 非比较类排序:不通过比较来决定元素间的相对次序,它可以突破基于比较排序的时间下界,以线性时间运行,因此也称为线性时间非比较类排序。 0.2 算法复杂度 排序方法 时间复杂度(平均) 时间复杂...

Read more

Nginx和PHP之间是怎样通信的

FastCGI原理FastCGI是一个运用于Http Server和动态脚本语言间通信的接口,多数流行的Http Server都支持FastCGI,包括Apache、Nginx和lighttpd等。同时,FastCGI也被许多脚本语言支持,其中就有PHP。FastCGI接口方式采用C/S结构,可以将HttP服务器和脚本解析服务器分开,同时在脚本解析服务器上启动一个或者多个脚本解析守护进程。当H...

Read more

当我们在谈论高并发的时候究竟在谈什么?

什么是高并发?高并发是互联网分布式系统架构的性能指标之一,它通常是指单位时间内系统能够同时处理的请求数,简单点说,就是QPS(Queries per second)。那么我们在谈论高并发的时候,究竟在谈些什么东西呢? 高并发究竟是什么?这里先给出结论:高并发的基本表现为单位时间内系统能够同时处理的请求数,高并发的核心是对CPU资源的有效压榨。 举个例子,如果我们开发了一个叫做MD5穷举的应用,...

Read more

PHP设计模式---观察者模式(Observer Pattern)

定义定义了一对多的依赖关系;多个观察者对象对主题对象的依赖,主题对象一旦改变,就会自动更新观察者的数据 实例比如一个求职者(观察者)和一个猎头(主题)求职者告诉猎头要找工作,猎头就添加一个求职者在求职名单中,当有求职信息的时候就会通知名单中的每一个求职者。求职者也可以告诉猎头说我不要信息了,猎头就将数据名单中的数据删除,求职者也可以作为一个猎头。因为每一次猎头发送的求职信息给每一个求职者,这个求...

Read more

PHP设计模式---建造模式(Builder Pattern)

优缺点:优点:建造模式可以让一个产品的内部表现和产品的生产过程分离,从而可以生成具有不同内部表象的产品缺点:建造者的接口修改会倒是所有执行类的修改 适用性:需要生成的产品对象有负责的内部接口需要成产品对象得属性相互依赖,建造这模式可以强迫生成顺序在对象创建过程中使用到系统中的一些其他对象,这些对象在产品对象得创建过程中不易得到其主要是为了消除其他对象复杂的创建过程 代码示例🌰class Use...

Read more

PHP设计模式---原型模式(Prototype Pattern)

定义用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象,通过复制已经存在的实例来返回新的实例,而不是新建实例,并且原型是可以制定的原型模式多用于创建复杂的或耗时的实例,这种情况下,复制一个已经存在的实例是程序运行更高的一种好的办法。 备注浅拷贝:Object类的clone方法只会拷贝对象中的基本的数据类型,对于数组、容器对象、引用对象等都不会拷贝,这就是浅拷贝。如果一个对象A是对象B的...

Read more