Linux Shell逻辑运算符和表达式详解

Shell 基本上是一个命令解释器,类似于 DOS 下的 command。它接收用户命令(如 ls 等),然后调用相应的应用程序。较为通用的 Shell 有标准的Bourne shell (sh)和C shell (csh)。很多时候在写 Shell 脚本的时候都容易遗忘部分逻辑运算符和表达式的写法,因此摘录如下,留待不时之需查询使用。Shell 逻辑运算符涉及以下几种类型,只要适当选择,可以...

Read more

OSI七层模型与TCP/IP五层模型

一、OSI参考模型以太网最基本也是重要的知识——OSI参考模型。 1、OSI的来源OSI(Open System Interconnect),即开放式系统互联。 一般都叫OSI参考模型,是ISO(国际标准化组织)组织在1985年研究的网络互连模型。ISO为了更好的使网络应用更为普及,推出了OSI参考模型。其含义就是推荐所有公司使用这个规范来控制网络。这样所有公司都有相同的规范,就能互联了。 2...

Read more

使用Nginx过滤网络爬虫

现在的网络爬虫越来越多,有很多爬虫都是初学者写的,和搜索引擎的爬虫不一样,他们不懂如何控制速度,结果往往大量消耗服务器资源,导致带宽白白浪费了。 其实Nginx可以非常容易地根据User-Agent过滤请求,我们只需要在需要URL入口位置通过一个简单的正则表达式就可以过滤不符合要求的爬虫请求: ... location / { if ($http_user_...

Read more

Git Stash使用笔记

1.使用git stash 保存当前的工作现场, 那么就可以切换到其他分支进行工作,或者在当前分支上完成其他紧急的工作,比如修订一个bug测试提交。 2.如果一个使用了一个git stash,切换到一个分支,且在该分支上的工作未完成也需要保存它的工作现场。再使用git stash。那么stash 队列中 就有了两个工作现场。 3.可以使用git stash list。查看stash队列。 ...

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

PHP设计模式---状态模式(State Pattern)

应用在软件开发过程中,应用程序可能会根据不同的状况作出不同的处理,只直接的方案就是将这些可能的解决方案全都考虑到,然后就是使用if else 语句来做出判断,但是面对比较复杂的判断就不太行了,这样机会影响程序的可读性,扩展性也变得很弱,维护也很麻烦,这时候就考虑到状态模式。例如: 按钮来控制一个电梯的状态,一个电梯开们,关门,停,运行。每一种状态改变,都有可能要根据其他状态来更新处理。开门状态,...

Read more

PHP设计模式---策略模式(Strategy Pattern)

封装变化 多用组合少用继承 针对接口编程,不要针对实现编程 定义定义了算法族,分别封装起来,让它们之间可以互相替换, 此模式让算法的变化独立于使用算法的客户。把有变化的行为抽离出去,进行封装,分别作为接口,用多台去不同的实现这些接口,这就组成了一族算法,在本类中定义变量去引用这个接口的子类对象用相对应的行为方法中用这个引用的子类对象去实现这个算法;这样这个类就不在关心到底进行什么样的算法,只关...

Read more