自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 编程题之给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点

单链表删除节点

2023-03-25 22:34:40 96

原创 编程之梯度计算价格

梯度算法计算

2023-03-23 22:16:17 268

原创 supervisor实战-demo

supervisor安装成功后supervisor配置文件: /etc/supervisord.conf; supervisor config file[unix_http_server]file=/var/run/supervisor.sock ; (the path to the socket file)chmod=0755 ; sockef file mode (default 0700)[supervisord]logfile=/v

2021-03-17 16:05:21 282

原创 supervisor安装配置

Linux的后台进程运行有好几种方法,例如nohup,screen等,但如果是一个服务程序要可靠地在后台运行,我们就需要把它做成daemon,最好还能监控进程状态,在意外结束时能自动重启。而supervisor是Python开发的一套通用的进程管理程序,能将一个普通的命令行进程变为后台daemon,并监控进程状态,异常退出时能自动重启。安装 - Debian / Ubuntu可以直接通过apt安装# apt-get install supervisor使用 - 编写应用程序...

2021-03-17 11:43:46 126

原创 Python 日期处理工具类

工具类文件名称:Helper.pyimport datetime''' 日期处理工具类'''class DateHelper(object): ''' 获取指定日期范围内的日期列表 ''' def get_date_list(self, date_start, date_end): datestart = datetime.datetime.strptime(date_start, '%Y-%m-%d') date

2021-01-29 10:23:06 276

原创 PHP的pm、pm.max_requests、memory_limit参数说明

php-fpm.conf pm pm是来控制php-fpm的worker进程数到底是一次性产生固定不变(static模式),还是在运行过程中随着需要动态变化(dynamic)。众所周知,worker进程数与服务器的性能息息相关,进程数太少则不能及时处理请求,而太多则会占用过多的内存而拖慢系统。 php-fpm处理请求时会随着处理请求数的增加而占用越来越多的内存,所以static模式下往往不好判断启动多少的进程数能使内存利用达到最大化,所以想到了dynamic模式。 pm...

2020-09-12 21:40:07 967

转载 DDL是什么

DDL是什么SQL(Structure Query Language)是数据库操作的的核心语言SQL(Structure Query Language)是数据库操作的的核心语言DDL(Data Definition Languages)语句:即数据库定义语句,用来创建数据库中的表、索引、视图、存储过程、触发器等,常用的语句关键字有:CREATE, ALTER, DROP, TRUNCATE, COMMENT, RENAMEDML(Data Manipulation Language)

2020-06-25 17:00:42 4510

原创 Linux 三剑客

sed sed是一种流编编器,它是文本处理中非常中的工具,能够完美的配合正则表达式便用,该功能不同凡响。处理时,它会把当前处理的行存储在临时缓冲区中,称为”模式空间”( pattern space),接着用sed命令处理缓冲区中的内容,处理成功后,把缓冲区的内容送往屏幕显示,接着理下一行,这样不断重复,直到文...

2020-01-04 16:57:50 188

原创 lambda函数

lambda 函数是一个可以接收任意多个参数(包括可选参数)并且返回单个表达式值的函数。 (注意:lambda 函数不能包含命令,它们所包含的表达式不能超过一个)lamda函数的好处(1)lambda函数比较轻便,即用即仍,很适合需要完成一项功能,但是此功能只在此一处使用,连名字都很随意的情况下;(2)匿名函数,一般用来给filter,map这样的函数式编程服务;(3)作为回调函数...

2019-08-14 19:21:57 571

原创 docker run与docker start的区别

docker run 只在第一次运行时使用,将镜像放到容器中,以后再次启动这个容器时,只需要使用命令docker start 即可。docker run相当于执行了两步操作:将镜像放入容器中(docker create),然后将容器启动,使之变成运行时容器(docker start)。docker start的作用是,重新启动已存在的镜像。也就是说,如果使用这个命令,我们必须事先知道这个...

2019-08-05 10:47:17 1247

转载 PHP实现URL长连接转短连接

短链接,通俗来说,就是将长的URL网址,通过程序计算等方式,转换为简短的网址字符串。这样的话其好处为:1、内容需要;2、用户友好;3、便于管理。实现短网址(short URL)系统比较流行的算法有两种自增序列算法、 摘要算法自增序列算法:也叫永不重复算法,设置 id 自增,一个 10进制 id 对应一个 62进制的数值,1对1,也就不会出现重复的情况。这个利用的就是低进制转化为高进制时...

2019-08-05 10:26:47 768

转载 Curl和Socket的区别

Socket PHP使用berkely的socket库来创建他的连接,socket是一个数据结构,你可以通过这个socket来开启服务器和客户端的会话。服务器端一直处于监听状态,当一个客户端连接服务器,他就打开服务器端正在监听的一个端口进行会话。这时服务器端接收客户端的连接请求,那么就进行一次循环。现在这个客户端就能够发送信息到服务器,服务器也可以发送信息给客户端。产生一个sock...

2019-05-13 14:55:32 2658

原创 python 多线程执行脚本

多线程执行:eg.""" 多线程执行"""import datetimefrom time import sleepimport threadingimport sys, getoptclass Test(threading.Thread): # TODO 初始化参数 def __init__(self, times): threadi...

2019-04-29 09:46:51 3266

原创 判断4个点组成矩形

<?php/** * 判断4个点是否组成矩形 * @param [type] $list [description] * @return boolean [description] */function isJuXing($list){ $v = []; $distance = []; for ($i=0; $i < 3 ; $i+...

2019-04-15 16:08:16 1453

原创 组合生成算法

给定一个数组:A、B、C、D,输出长度为N的组合,返回所有的组合的方式<?php/** * 组合:数据集$list,组合的个数:$num * @param $list * @param $m * @return [] */function arrangement($list, $num) { $res = []; $count = count($list...

2019-04-15 16:07:04 692

原创 串联所有单词的子串

给定一个字符串s和一些长度相同的单词words。找出s中恰好可以由words中所有单词串联形成的子串的起始位置。注意子串要与words中的单词完全匹配,中间不能有其他字符,但不需要考虑words中单词串联的顺序。<?php/** * @param String $s * @param String[] $words * @return Integer...

2019-04-13 18:06:13 443 2

原创 删除排序数组中的重复项

一、删除数组中的重复项【无序】<?php/** * 给定一个数组(无序),你需要在原地删除重复出现的元素,使得每个元素只出现一次, * 返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。 * @param array $list * @return array new list */function a...

2019-04-10 15:00:40 184

原创 数组中只出现一次的数字

给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?示例输入 :[2,2,1]输出 :1示例2输入 :[4,1,2,1,2]输出: :4<?php/** * 求数组中只出现一次的元素 * 其它元素出现的次数为偶数次 */fu...

2019-04-10 14:13:23 109

原创 反转字符串

编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。你可以假设数组中的所有字符都是 ASCII 码表中的可打印字符。示例 1输入:["h","e","l","l","o"]输出:["o","l","l","e","h"]示例 2输入:["H"...

2019-04-10 14:01:00 142

原创 买卖股票最大收益

给定一个数组,它的第i 个元素是一支给定股票第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。示例 1输入: [7,1,5,3,6,4]输出: 7解释: 在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候卖出, 这笔交易所能...

2019-04-10 11:35:09 974 1

原创 组合计算——拆分一个整数数为N个

将一个数Number按照拆分成N个在(min, max)范围内的数方法一 基本思想:循环1 ~ N,每次循环,都计算随机范围(min , max),判断是否可以生成N个满足要求的数<?php/** * 将一个数按照拆分成N个在(min, max)范围内的数 * @param [type] $number 待拆分的数 * @param [type] $...

2019-04-03 16:26:24 2206

转载 CGI、FastCGI、PHP-CGI与PHP-FPM的区别

CGI就像翻译机,将PHP语言给服务器解释,便于相互之间的理解和通讯,最后呈现给浏览器查看,哈哈,是不是很有趣呢:转自:http://www.php.cn/php-weizijiaocheng-377248.htmlCGICGI全称是“公共网关接口”(Common Gateway Interface),HTTP服务器与你的或其它机器上的程序进行“交谈”的一种工具,其程序须运行...

2019-04-01 14:15:25 173

转载 int字节问题说明

今天发现NEON技术中 int类型的字节数是2,感觉很奇怪,最早写51单片机时也是2,后来到了观念转变成了4,现在有遇到了2一、转自 http://www.tuicool.com/articles/6j2uqi2最近在看深入理解计算机系统这本书,上面提到了在32位机器和64机器中int类型都占用4个字节。后来,查了The C Programming language这本书,里面有一句话是...

2019-03-25 14:27:02 465

原创 同步、异步与阻塞、非阻塞的理解

同步、异步概念:消息的通知机制解释:涉及到IO通知机制;所谓同步,就是发起调用后,被调用者处理消息,必须等处理完才直接返回结果,没处理完之前是不返回的,调用者主动等待结果;所谓异步,就是发起调用后,被调用者直接返回,但是并没有返回结果,等处理完消息后,通过状态通知或者回调函数来通知调用者,调用者被动接收结果。阻塞、非阻塞概念:程序等待调用结果时的状态解释:涉及到CPU线程调度;所谓...

2019-03-23 18:00:31 117

转载 cookie被浏览器自动删除机制

会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话。常用的会话跟踪技术是Cookie与Session。Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端记录信息确定用户身份。1.1 Cookie机制在程序中,会话跟踪是很重要的事情。理论上,一个用户的所有请求操作都应该属于同一个会话,而另一个用户的所有请求操作则应该属于另一个会话,二者不能混...

2019-03-21 15:57:01 13621

转载 快速排序之PHP实现【非递归】

算法过程  设要排序的数组是A[0]……A[N-1],首先任意选取一个数据(通常选用第一个数据)作为关键数据,然后将所有比它小的数都放到它前面,所有比它大的数都放到它后面,这个过程称为一趟快速排序。一趟快速排序的算法是:   1)设置两个变量I、J,排序开始的时候:I=0,J=N-1;    2)以第一个数组元素作为关键数据,赋值给key,即 key=A[0];    3)从J开始由后向...

2019-03-21 10:59:21 1780

转载 快速排序之PHP实现【递归】

快速排序的原理找到当前数组中的任意一个元素(一般选择第一个元素)作为标准,新建两个空数组,遍历整个数组元素,如果遍历到的元素比当前的元素要小,那么就放到左边的数组,否则放到右面的数组,然后再对新数组进行同样的操作,不难发现,这里符合递归的原理,所以我们可以用递归来实现。使用递归,则需要找到递归点和递归出口; 递归点:如果数组的元素大于1,就需要再进行分解,所以我们的递归点就是新构造的数组...

2019-03-21 10:12:30 207

原创 设计模式解析之观察者模式

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

2019-03-21 09:39:16 119

转载 设计模式解析之适配器模式

将各种截然不同的函数接口封装成统一的API。PHP中的数据库操作有MySQL,MySQLi,PDO三种,可以用适配器模式统一成一致,使不同的数据库操作,统一成一样的API。类似的场景还有cache适配器,可以将memcache,redis,file,apc等不同的缓存函数,统一成一致。首先定义一个接口(有几个方法,以及相应的参数)。然后,有几种不同的情况,就写几个类实现该接口。将完成相...

2019-03-21 09:36:59 92

转载 设计模式解析之注册模式

注册模式,解决全局共享和交换对象。已经创建好的对象,挂在到某个全局可以使用的数组上,在需要使用的时候,直接从该数组上获取即可。将对象注册到全局的树上。任何地方直接去访问。<?phpclass Register{ protected static $objects; function set($alias,$object)//将对象注册到全局的树上 ...

2019-03-21 09:17:19 341

转载 设计模式解析之单例模式

单例模式确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例。单例模式是一种常见的设计模式,在计算机系统中,线程池、缓存、日志对象、对话框、打印机、数据库操作、显卡的驱动程序常被设计成单例。单例模式分3种:懒汉式单例、饿汉式单例、登记式单例。单例模式有以下3个特点:1.只能有一个实例。2.必须自行创建这个实例。3.必须给其他对象提供这一实例。那么为什么要使用P...

2019-03-21 09:16:16 93

转载 设计模式解析之工厂模式

工厂模式是我们最常用的实例化对象模式,是用工厂方法代替new操作的一种模式。使用工厂模式的好处是,如果你想要更改所实例化的类名等,则只需更改该工厂方法内容即可,不需逐一寻找代码中具体实例化的地方(new处)修改了。为系统结构提供灵活的动态扩展机制,减少了耦合。<?phpheader('Content-Type:text/html;charset=utf-8');/** *...

2019-03-21 09:14:08 128

转载 设计模式解析之策略模式

策略模式是对象的行为模式,用意是对一组算法的封装。动态的选择需要的算法并使用。具体指的是程序中涉及决策控制的一种模式。策略模式功能非常强大,因为这个设计模式本身的核心思想就是面向对象编程的多形性思想。策略模式的三个角色:1.抽象策略角色 2.具体策略角色 3.环境角色(对抽象策略角色的引用)实现步骤:1.定义抽象角色类(定义好各个实现的共同抽象方法) 2.定义具体策略类(具体实...

2019-03-21 09:12:47 115

转载 Redis的持久化方式

1、前言最近在项目中使用到Redis做缓存,方便多个业务进程之间共享数据。由于Redis的数据都存放在内存中,如果没有配置持久化,redis重启后数据就全丢失了,于是需要开启redis的持久化功能,将数据保存到磁盘上,当redis重启后,可以从磁盘中恢复数据。redis提供两种方式进行持久化,一种是RDB持久化(原理是将Reids在内存中的数据库记录定时dump到磁盘上的RDB持久化),另外一...

2019-03-20 21:59:59 119

转载 23种设计模式

一、设计模式的分类总体来说设计模式分为三大类创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。 结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。 行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。其实还有两类:...

2019-03-20 20:12:33 82

原创 echo print() print_r() var_dump()的区别

echo()可以一次输出多个值,多个值之间用逗号分隔。echo是语言结构(language construct),而并不是真正的函数,因此不能作为表达式的一部分使用。print()函数print()打印一个值(它的参数),如果字符串成功显示则返回true,否则返回false。print_r()可以把字符串和数字简单地打印出来,而数组则以括起来的键和值得列表形式显示,并以Arra...

2019-03-20 17:51:35 362

转载 闭包及其优缺点

·闭包(closure)是javascript的一大难点,也是它的特色。很多高级应用都要依靠闭包来实现。1、变量作用域要理解闭包,首先要理解javascript的特殊的变量作用域。变量的作用域无非就两种:全局变量和局部变量。javascript语言的特别之处就在于:函数内部可以直接读取全局变量,但是在函数外部无法读取函数内部的局部变量。注意点:在函数内部声明变量的时候,一定要使用...

2019-03-20 17:00:33 183

原创 HTTP协议是无状态的/无连接的到底指的是什么?

直观的说,“每次的请求都是独立的,它的执行情况和结果与前面的请求和之后的请求是无直接关系的,它不会受前面的请求应答情况直接影响,也不会直接影响后面的请求应答情况”要明白,这句话的含义是指在说明,http协议作为技术背景的web应用程序请求——应答模式是无状态的,这个事实基本不会发生改变,也不会因为加入cookies、session机制而变成有状态的。要明白,这种前后因果关系:“我们要实现的是...

2019-03-20 16:19:29 4245

原创 Apache与Nginx的优缺点比较

nginx相对于apache的优点轻量级,同样起web 服务,比apache 占用更少的内存及资源 抗并发,nginx 处理请求是异步非阻塞的,而apache 则是阻塞型的,在高并发下nginx 能保持低资源低消耗高性能 高度模块化的设计,编写模块相对简单 社区活跃,各种高性能模块出品迅速啊apache 相对于nginx 的优点rewrite ,比nginx 的rewrit...

2019-03-20 09:15:14 128

原创 TPS、QPS、并发数、响应时间(RT)概念

响应时间(RT)  响应时间是指系统对请求作出响应的时间。直观上看,这个指标与人对软件性能的主观感受是非常一致的,因为它完整地记录了整个计算机系统处理请求的时间。由于一个系统通常会提供许多功能,而不同功能的处理逻辑也千差万别,因而不同功能的响应时间也不尽相同,甚至同一功能在不同输入数据的情况下响应时间也不相同。所以,在讨论一个系统的响应时间时,人们通常是指该系统所有功能的平均时间或者所有功能的...

2019-03-19 14:37:04 799

空空如也

空空如也

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

TA关注的人

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