自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 资源 (2)
  • 收藏
  • 关注

原创 mysql事务实现原理

redolog:重做日志,用来实现事务的持久性,记录已成功提交事务的修改信息mysql 为了提升性能不会把每次的修改(update,delete,insert)都实时同步到磁盘,而是会先存到Buffer Pool(缓冲池)里头,把这个当作缓存来用。然后使用后台线程去做缓冲池和磁盘之间的同步。mysql读数据:会首先从缓冲池中读取,如果缓冲池中没有,则从磁盘读取在放入缓冲池; mysql写数据:会首先写入缓冲池,缓冲池中的数据会定期同步到磁盘中;那么问题来了,如果还没来...

2021-03-01 00:25:44 206

原创 php7数组底层实现

PHP 数组的底层实现是散列表(也叫 hashTable ),散列表是根据键(Key)直接访问内存存储位置的数据结构,它的key - value 之间存在一个映射函数,可以根据 key 通过映射函数得到的散列值直接索引到对应的 value 值,无需通过关键字比较,在理想情况下,不考虑散列冲突,散列表的查找效率是非常高的,时间复杂度是 O(1)。typedef struct _zend_array zend_array;typedef struct _zend_array hashTable;.

2020-10-19 20:25:08 599

原创 mysql锁详解

mysql锁详解1.数据库锁机制数据库提供两种锁:表锁和行锁myisam存储引擎支持表锁innodb存储引擎支持表锁和行锁行锁分两种:共享锁和排它锁共享锁:当数据被加上共享锁时,其他事务能对它进行查操作、加共享锁操作,但不能进行删改操作、加排它锁操作排它锁:当数据对象被加上排它锁时,其他事务只能对数据进行查操作,且查的是被锁前的数据行锁是在索引上加锁,所以只有通过索引条件检索数据,InnoDB才使用行级锁,否则,InnoDB将使用表锁!意向锁:意向共享锁和意向排它锁,innodb为了允许行

2020-10-19 20:23:58 109 2

原创 三次握手,四次挥手

在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SENT状态,等待服务器确认;SYN:同步序列编号(Synchronize Sequence Numbers)。第二次第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(sy...

2019-05-24 08:10:35 155

原创 消息队列

主要的使用场景就是将比较耗时而且不需要立即生效返回结果的操作,我们把这种操作作为一个消息,放到消息队列中。处理方可以在任何时候去获取并处理这条消息。这里我们只要保证消息的格式不变,消息的发送方和接收处理方都认识这个消息,那么双方就不需要彼此通信,即可以完成一件事。1:消息队列可以算是系统与系统之间的中间件,例如订单、支付、物流系统三者之间。作用是主要目的是减少请求响应时间和解耦各个系统,...

2019-05-24 08:09:21 158

原创 http,tcp,socket关系

网络五层模型:应用层,传输层,网络层,链路层,物理层http连接:以http协议为通信协议的tcp连接,http连接是基于tcp连接的,当浏览器需要从服务器获取网页数据的时候,会发出一次Http请求。Http会通过TCP建立起一个到服务器的连接通道,当本次请求需要的数据完毕后,Http会立即将TCP连接断开socket连接:基于tcp连接或udp连接,基于tcp需要先三次握手,可靠传输,基...

2019-05-24 08:08:27 323

原创 mysql锁

1.数据库提供的两种锁的类型共享锁:当数据对象被加上共享锁时,其他事务能对它进行读操作但不能进行写操作排它锁:当数据对象被加上排它锁时,其他事务不能进行读和写操作2.web开发解决并发问题时常用的两种锁1.乐观锁:在加锁的表中加一个字段代表版本号,通过版本号来控制并发,只有在更新的时候会判断是否加锁,这种模式是通过程序来实现的。 优点:不会阻止除程序外的数...

2019-05-24 08:06:13 95

原创 vue基础命令

vue将 DOM 绑定至Vue 实例的数据实例化vue构造器(data定义属性,method定义方法(computed),el定位dom元素中的id,watch监听属性,mounted自动加载)我们可以使用 methods 来替代 computed,效果上两个都是一样的,但是 computed 是基于它的依赖缓存,只有相关依赖发生改变时才会重新取值。而使用 methods ,在...

2019-05-24 08:05:21 107

原创 mysql事务

事务的性质1.原子性一组事务,要么成功,要么完全撤回。2.一致性事务处理前后数据的一致性必须保持一致。(比如a转给b 100元,如果中途出现问题,不会出现a,b账上总金额少了100的情况)3.隔离性事务之间是相互隔离的,如果一个事务的操作影响了另一个事务,则另一个事务撤回,会牺牲速度4.持久性事务如果执行成功,它的影响会永远记录在数据库里5.概念脏读∶指...

2019-05-23 14:19:03 103

原创 mysql索引

概要:没有索引的情况下,数据库会遍历全部200条数据后选择符合条件的;而有了相应的索引之后,数据库会直接在索引中查找符合条件的选项。如果我们把SQL语句换成“SELECT * FROM article WHERE id=2000000”,那么你是希望数据库按照顺序读取完200万行数据以后给你结果还是直接在索引中定位呢?1. 索引只能用在非空的字段上,因此设计数据库的时候字段能非空就非...

2019-05-23 14:17:17 99

原创 mysql性能优化

1.获取唯一行时使用LIMIT 1有时当你查表时,你已经知道你正在查找的结果只有一行。你可能正在获取唯一记录,或者你可能只是查询是否存在满足你的WHERE子句条件的记录。在这种情况下,将LIMIT 1添加到查询条件中可以提高性能。这样,数据库引擎将在找到刚刚第一个记录之后停止扫描记录,而不是遍历整个表或索引。2.避免使用SELECT *,指定你要搜索的字段从数据表中...

2019-05-23 14:15:28 116

原创 mysql与mysqli的异同点

1)安全性、稳定性更高;2)提供了面向对象和面向过程两种风格php.ini 中的 extension=php_mysqli.dll 解除封印1.什么是mysqliPHP-MySQL 函数库是 PHP 操作 MySQL 资料库最原始的扩展库,PHP-MySQLi 的 i 代表 Improvement ,相当于前者的增强版,也包含了相对进阶的功能,另外本身也增加了安全性,比如可以大幅...

2019-05-23 14:14:01 109

原创 mongodb与mysql区别

1.数据库的平均插入速率:MongoDB不指定_id插入> MySQL不指定主键插入> MySQL指定主键插入> MongoDB指定_id插入。2.mongodb从一开始就被设计来当做分布式数据库,所有_id是唯一且不自增的3.MongoDB使用的是内存映射存储引擎(Memory Mapped Storage Engine),它把磁盘文件的一部分或全部内容直接映射到...

2019-05-23 14:12:03 1094

原创 安装mongodb

https://blog.csdn.net/caofeiliju/article/details/80195036存数据库的是/usr/local/mongodb/db存日志的文件是/usr/local/mongodb/log/mongo.log在/usr/local/mongodb/ 下创建mongodb.conf,内容是:port=27017 #端口dbpa...

2019-05-23 14:09:37 136

原创 linux常用命令

apache开启关闭service httpd start 启动service httpd restart 重新启动service httpd stop 停止服务查看apache安装目录 find / -name 'httpd'全文查找grep “xxxxxx” httpd.conf 查找在httpd.conf中是否存在xxxxx内容端口...

2019-05-23 14:06:02 104

原创 laravel生命周期

https://learnku.com/articles/10421/depth-mining-of-laravel-life-cyclelaravel的一个完整生命周期的处理都在public下的入口文件index.php文件中1.通过composer加载项目所依赖的第三方组件库2.创建应用实例,即实例化app服务容器(注册各种基础服务至app容器如注册应用的基础路径,注册基础服...

2019-05-23 14:03:50 502

原创 php7 新特性

https://blog.csdn.net/u011957758/article/details/73320083新增功能1.类型的声明 申明变量有强制模式和严格模式,前者会转换类型(如float转int),后者会直接报错2.新增操作符 语法:$c =$a <=> $b 如果$a >$b, $c 的值为1 如果$a ...

2019-05-23 14:01:32 155

原创 git常见命令

提交:gitadd.//添加当前目录中的所有文件到索引gitcommit-m"firstcommit"//提交到本地源码库,并附加提交注释gitpushoriginmaster分支提交:git checkout -b dev //切换到dev分支gitadd.//添加当前目录中的所有文件到索引gitcommit-m"firstcommit...

2016-10-09 16:19:43 238

原创 php-cgi,php-fpm

首先,CGI是干嘛的?CGI是为了保证web server传递过来的数据是标准格式的,方便CGI程序的编写者。web server(比如说nginx)只是内容的分发者。比如,如果请求/index.html,那么web server会去文件系统中找到这个文件,发送给浏览器,这里分发的是静态数据。好了,如果现在请求的是/index.php,根据配置文件,nginx知道这个不是静态文件,需要去找P...

2016-09-30 11:31:02 621

原创 xss攻击

跨站脚本攻击(通过<script>标签对网站注入一些可执行的代码)1.反射型xss:举例,有一个网址是http://www.a.com/index.php?name=123,网址的页面中会把获取的get参数输出出来,比如$name = $_GET['name];echo "Welcome $name<br>";。然后黑客通过诱导你打开一个...

2016-09-30 11:22:49 285

原创 跨域问题

浏览器因为同源策略(同域名,同端口,同协议[http.https])无法访问其他域下的资源,主域名相同但子域名不同也不允许访问1.几种实现跨域的方式CORS(跨域资源共享)、jsonp2.区别CORS:允许GET POST PUT DELETE 请求,有些浏览器无法使用、必须IE10以上jsonp:只允许get请求,任何浏览器都可以使用3.CO...

2016-09-30 10:42:52 891

原创 redis和memcache的区别

Redis和Memcache都是将数据存放在内存中,都是内存数据库。但是Memcache还可以缓存其他东西,比如图片、视频 Redis不只支持简单的k/v类型的数据,同时还提供list、set、hash等数据结构的存储 虚拟内存,当物理内存用完时Redis可以将一些很久没有用到的value交换到磁盘 过期策略,memcache在set时就指定,例如set key1 0 0 8即永不过期,re...

2016-09-30 10:29:29 239

原创 redis基础

redis五种数据结构:String(字符串)、Hash(哈希)、List(列表)、Set(集合)、Zset(即Sorted Set有序集合)String(字符串): 特点:string的一个键最大能存储512MB。 存储形式:键值对 使用场景:各种缓存数据、存储session(如何存储)、手机验证码限速、Hash(哈希): 特点...

2016-09-29 17:55:29 214

原创 工厂模式

工厂模式的最大好处是把创建对象的过程封装起来,通过不同的参数创建不同的对象,减少代码的重复量。简单工厂模式:又称为静态工厂模式,因为工厂类中是通过一个个静态方法来创建对象的。但它违反了面向对象设计原则中的开闭原则:对扩展开放,对修改关闭。在工厂类中添加静态方法来实现需求。工厂模式:定义一个接口,让子类工厂决定实例化哪个产品类。解决了开闭原则问题。...

2016-09-29 17:00:49 297

原创 单例模式

单例模式:只有一个实例,自行实例化,提供全局访问的方法优点:防止重复实例化,消耗内存PHP一个主要应用场合就是应用程序与数据库打交道的场景,在一个应用中会存在大量的数据库操作,针对数据库句柄连接数据库的行为,使用单例模式可以避免大量的new操作。因为每一次new操作都会消耗系统和内存的资源。php对象的是生存时间是从一个脚本开始到结束位置。因此单例模式(静态变量)只是...

2016-09-19 09:58:47 216

原创 基础算法总结

1.反转数组$count = count($list); $left = 0; $right = $count - 1; while ($left < $right) { $temp = $list[$left]; $list[$left++] = $list[$right]; $list[$right--] = $temp;}2....

2016-09-13 14:37:03 235

原创 csrf攻击

跨站请求伪造,黑客诱使用户访问自己的网址然后获取用户在某一网站上的cookie信息伪造成用户身份通过构造表单向目标网站发送请求进行操作。防范方法1.输入验证码 最简单暴力的方式,但是用户体验太差2.验证http头部的Referer字段 黑客用CSRF的方法时,整个流程是在用户的浏览器中从黑客的地址发送请求到目标网址,因此Referer的内容就是黑 客的地址,所...

2016-09-13 10:16:55 204

原创 wamp安装方式

Apache服务器最新版下载、安装及配置(win版) 1 登录http://httpd.apache.org/download.cgi 这个地址,找到2.4.10,如下图位置: 步骤阅读 2 进入如下界面后,选择第一项ApacheHaus,这是个第三方下载平台,在它的网站下载独立的Apache会是一个压缩包 另外四个中,第二个也是独立的Apache下载地址,另外三...

2016-09-13 09:14:42 334

原创 get/post区别

1.1.GET产生一个TCP数据包;POST产生两个TCP数据包; 对于GET方式的请求,浏览器会把http header和data一并发送出去,服务器响应200(返回数据) 对于POST,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok(返回数据)。1.2.后退刷新 ,get请求是无害的,post请求数据会被重新提交...

2016-09-05 15:37:20 317

原创 php面向对象

1.OOP作用把一些复杂的问题分拆抽象成较简单的独立对象,通过对象的互相调用去实现方案。2.public,private,protected,finalprivate:只能在本类中调用该方法protected:只能在当前类,子类,父类中调用该方法public:没有权限限制,可以随意调用此方法final:如果父类的方法被声明为final,子类无法覆盖。如果一...

2016-09-01 17:23:53 296

原创 php函数

1.html_entity_decode();htmlentities()[防止xss攻击];htmlspecialchars()[防止xss攻击]把 HTML 实体转换成字符;将字符转换成HTML实体;TP的I函数默认使用的过滤方法,把'>' '<' 单引号 双引号 '&' 转化成html实体,例如& (和号)成为 &amp;" (双引号)...

2016-08-29 09:59:35 576

自动增删改双向链表

在VS下可以运行的C语言程序。可以让电脑自动执行双向链表的创建,添加删除结点,打印链表等功能。

2015-03-17

多线程实现双向链表增删改

多线程实现双向链表的增删改 其中的信号量设成一个也行- -

2014-12-14

空空如也

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

TA关注的人

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