自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 常用IO模型及IO多路复用原理

在Linux下编写服务端程序时,一个必须考虑的问题就是程序的IO,要根据使用场景选择合适的IO模型,特备是对于IO密集型的应用,合适的IO模型显得尤为重要。

2021-07-27 23:23:15 403

原创 composer管理php项目代码

Composer 是 PHP 的一个依赖管理工具。它允许你申明项目所依赖的代码库,它会在你的项目中为你安装他们。composer官方文档1、composer能做什么?Composer 将这样为你解决问题:a) 你有一个项目依赖于若干个库。b) 其中一些库依赖于其他库。c) 你声明你所依赖的东西。d) Composer 会找出哪个版本的包需要安装,并安装它们(将它们下载到你的项目中)2、如何将composer依赖管理应用到已有项目?按照官方文档的提示安装composer工具,并且使c.

2021-04-30 14:33:20 503 1

原创 shell脚本自动更新ca证书

#!/bin/bash#运行环境,1、ubuntu18.0以上,2、已经安装snap;3、已安装kubectlcertbot=`certbot --help`if test $? -eq 0then echo "已安装certbot,为test.com获取Let'sencrypt证书"else echo "未安装certbot,开始安装certbot" sudo snap install --classic certbot if test $? -ne 0 then echo "安装

2021-02-22 16:25:00 432

原创 解决Laravle内存泄漏的问题

最近对老项目进行了重构,需要将老版数据库里的数据迁移到新版的数据库,由于新旧两版的数据库表结构存在较大差异,所以写了php脚本来迁移数据。在Laravel项目下的app\Console\Commands目录下创建命令行类,之后在linux命令行执行 php artisan data:v2 运行迁移代码很简单,只有几行,用到了laravle查询构建器的chunk方法:public function familyUploadCount(){ $service = app(DataSe.

2020-11-18 11:49:14 936

原创 Laravel源码(6):Collection集合类

laravel的Collection工具类对php的数组处理函数进行了封装,开发者可以链式调用Collection中的方法,从而优雅地处理数组类的数据。

2020-04-10 18:09:19 569

原创 OPcache和Swoole对Laravel框架性能的提升

php是脚本语言,由于脚本语言本身的运行机制,导致运行速度不如Java、go之类的编译型的语言。Laravel作为php编写的MVC框架,由于集成度很高,每次运行都加载了大量文件,加之使用了大量的闭包、魔术方法,导致laravel框架很重,并发性能极差。OPcache和Swoole都是php的扩展,可以用来加快php程序的响应速度,本文旨在比较这两个扩展分别开启后对Laravel应用的加速效果。...

2020-04-09 09:22:14 1956

原创 python编程实践(3):python+selenium实现12306抢票脚本

又到了一年一度的春运时节,抢个票?1、设计思路如果我们要买一张火车票,我们会怎么做?打开12306,登陆,输入出发地和目的地,选择出行日期,然后点击查询,有余票的话就下单购买,没有票就点刷新或者等待一会再去看下,为了能抢到票,你时不时就得放下手头的工作,登陆12306看看有没有票。很枯燥很繁琐不是吗?因此我们希望写一个脚本来代替我们做这些事情。脚本是一段程序,能够自动帮我们完成上述枯燥的...

2020-01-02 11:47:15 2573

原创 进程的状态

进程和线程是当代计算机系统最重要的两个概念,进程是程序被系统加载并运行的一个过程,深入理解进程的概念有助于我们深入了解计算机的工作原理。本文旨在归纳总结进程的运行转态。...

2019-12-21 23:05:02 186

原创 Linux下常用的文本分析工具

Linux下有很多好用的文本分析工具,一起来看下吧。

2019-12-11 21:53:10 525

原创 Mysql常用备份策略

Mysql常用的备份策略

2019-12-10 18:02:29 376

原创 用redis和php实现简单的消息队列服务器

redis拥有五大基本的数据结构:string(字符串)、list(列表)、hash(哈希)、sets(集合)、sorted sets(有序集合)。列表结构类似于线性表里的双向链表,双向链表的特点是既可以从表头顺序遍历链表,也可以从表尾开始顺序遍历链表。双向链表示意图:利用list数据结构,我们可以实现简单的消息队列。redis提供了很多操作list的api,这里以php的r...

2019-12-09 15:51:59 486

原创 Redis缓存键的过期策略

redis是目前很流行的key-value形式的、基于内存的NoSQL数据库,相比于memocache有更加丰富的数据类型,能适应更多的业务场景,因此得到了广泛的应用。这里主要关注redis缓存键的过期策略,更多关于redis的介绍详见redis官网:点击进入官网...

2019-11-26 17:49:05 137

原创 Laravel源码(五):框架的启动过程

laravel框架的入口文件index.php中只有几行代码,但是这几行简短却将整个web请求的响应过程走完了,今天就跟着框架的启动过程来看下这其中暗藏的玄机。

2019-08-16 18:03:56 390

原创 用ab压测Laravel5.8、ThinkPHP5、Yii2

压测Laravel5.8、ThinkPHP5、Yii2(1)测试环境搭建(2)配置这三个框架搭建的站点(1)测试环境搭建这里用virtualbox搭建Linux虚拟机,用vagrant管理虚拟机。Web服务器用的nginx,可以用lnmp脚本安装和管理nginx、php、mysql。(2)配置这三个框架搭建的站点在nginx的server块中配置虚拟主机。配置laravel5.8项目s...

2019-08-09 17:58:01 1562

原创 JavaScript实现俄罗斯方块

网页版俄罗斯方块欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Mark...

2019-07-19 16:00:07 1374

原创 Laravel源码(四):Facade是个啥?

laravel框架给人第一感觉是什么?我想绝大多数人都会说晦涩难懂。作者泰勒把php的很多特性都进行了封装,并给出优雅的接口,同时也创早了很多新词来描述这种封装。从某种角度看,这其实代表了作者的某种设计哲学。Facade应该算是对类和对象的一种封装。今天就来看看Faades到底是个啥。1 官方文档的定义“Facades 为应用的 服务容器 提供了一个「静态」 接口。Laravel 自带了...

2019-07-16 21:54:51 780

原创 基于websocket的网页聊天程序

前期准备安装php和swoole扩展安装redis和php redis扩展利用php的swoole扩展可以轻松搭建websocket服务器,当然了解网络编程和websocket协议的童鞋也可以自己写一个websocket服务器。这里利用redis处理消息队列。后端代码文件WebsocketClient.php:<?phpclass WebsocketClient { ...

2019-07-10 18:01:16 457

原创 常见的web攻击手段

整理自网上关于web攻击的热门文章。(一)跨站脚本攻击跨站脚本攻击(Cross-Site Scripting,XSS)是指通过存在安全漏洞的web网站注册用户的浏览器内运行非法的HTML标签或JavaScript脚本的一种攻击。攻击者编写脚本设下陷阱,用户在自己的浏览器上运行时,一不小心就会受到被动攻击。参考文章:https://thief.one/2017/05/31/1/(...

2019-05-20 11:02:40 4164

原创 操作系统概述

操作系统(OS)是配置在计算机硬件上的第一层软件,是一系列程序的集合,是对硬件系统 的首次扩充。其作用是管理好各硬件,协调各用户软件对资源的需求,以提高各设备资源的利用率和系统的吞吐率。并且为用户和应用程序提供简单的接口,以方便用户使用。OS是现代计算机系统中最重要的软件,其他诸如编译程序、数据库软件、邮件系统都直接依赖于系统的支持。(一)OS的目标和作用主要目标:方便些、有效性、可扩充性...

2019-05-14 20:19:52 170

原创 关于运输层协议的一些要点

1、运输层为主机之间的应用进程提供逻辑通信,只有主机的协议栈才有运输层,网络层提供的是主机间的通信,而运输层为进程提供端到端的通信。运输层很重要的一个功能就是复用和分用。2、运输层有两种主要的运输协议:无连接的UDP(用户数据报协议)和面向连接的TCP(传输控制协议)。3、运输层使用协议端口号,0~1023是熟知端口号,1024~49151是登记端口号,49152~65535是短暂端口号。...

2019-04-17 21:46:18 832

原创 python编程实践(二):统计网页所有静态链接

用到模块:re、bs4、requests"""用递归的方式统计某个站点的所有静态链接"""from bs4 import BeautifulSoupimport requestsimport redef count_link(entrance): links = [entrance] #保存所有链接 trace = [] #已统计过的页面 stack = [...

2019-03-27 14:52:40 208

原创 python编程实践(一):统计智联招聘数据

统计智联招聘上,各个编程语言的在招岗位数量。思路:写爬虫 的第一步永远是先分析网页1、用谷歌浏览器打开智联招聘官网。2、右键“检查”->"Network"对响应数据抓包。3、我们发现,岗位数据是用xhr加载的,json格式的数据。这样我们就可以直接向api发起请求获取数据包,因此可以跳过解析html标签这一步。4、分析接口的请求头、请求参数、响应。请求参数包括一些查询...

2019-03-15 15:33:37 1753

原创 laravel源码探析(三):Middleware中间件

在框架的入口文件中,实例化Illuminate\Foundation\Application类后,调用这个类的make方法,获取一个对象$kernel(核心)。这个核心像一个“黑盒子”,接受用户(浏览器)的请求,调用“盒子”的handle方法处理请求,获得一个响应,再把响应发送给用户(浏览器):$response->send()。最终调用“盒子”的terminate方法做一些收尾的工作,至此...

2019-03-11 11:50:22 348

原创 laravel源码探析(二):Container类

laravel框架在入口index.php文件中通过require实例化Illuminate\Foundation\Application类,用作连接框架各种服务、组件的“胶水”和实现 IoC控制反转的容器。<?php/*|--------------------------------------------------------------------------| Cr...

2019-03-07 14:24:36 377

原创 更新letsencrypt免费ssl证书时遇到的问题

linux下运行命令 ./certbot-auto renew更新Let’s Encrypt安全证书时抛出以下错误:Attempting to renew cert (wlsf.tpsion.com) from /etc/letsencrypt/renewal/wlsf.tpsion.com.conf produced an unexpected error: Failed authoriza...

2019-03-05 16:42:09 5354

原创 laravel源码探析(一):composer自动加载

laravle是目前很火的一款php框架,国内外的用户非常多。laravel的特点是优雅简洁,作者泰勒给laravel的定义是:A PHP Framework For Web Artisans。利用laravel快速开发网络应用,为我们节省了大量时间,可以从杂乱无章的代码中解脱出来而专注于应用本身。然而laravel的另一个特点是使用了大量的php新特性,还有众多晦涩难懂的设计模式,这...

2017-11-11 18:46:37 502

空空如也

空空如也

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

TA关注的人

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