• 什么是悲观锁?什么是乐观锁?
  • 定义:悲观锁(Pessimistic Lock), 顾名思义,就是很悲观,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会block直到它拿到锁。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。 乐观锁(Optimistic Lock), 顾名思义,就是很乐观,每次去拿数据的时候都认为别人不会修改,所以不会上锁,但是在更新的时候会判断一下在此期间别人有没有去更新这个数据,可以使用版本号等机...
  •  2019-02-20  |    程成  |    392  |    1  |    其他  |   悲观锁  乐观锁  SQL  
  • Redis 持久化存储(AOF/Snapshot)
  • Redis中数据存储模式有2种:cache-only,persistence;cache-only即只做为“缓存”服务,不持久数据,数据在服务终止后将消失,此模式下也将不存在“数据恢复”的手段,是一种安全性低/效率高/容易扩展的方式;persistence即为缓存中的数据持久备份到磁盘文件,在服务重启后可以恢复,此模式下数据相对安全。     持久化数据的方式很多,基于各种考虑面,可能最终导致的设计手段有所差异。针对互联网应用,服务提供者必须具备并发访问/数据安全/...
  •  2019-02-18  |    程成  |    359  |    0  |    数据库  |   Redis  持久化  AOF  Snapshot  
  • PHP解决高并发问题
  • 首先,这篇文章不是我写的。选自于网上,我是觉得写的很不错。虽然我想标明出自哪里,但是网上很多这一个版本的文章,都标明原创。我们通常衡量一个Web系统的吞吐率的指标是QPS(Query Per Second,每秒处理请求数),解决每秒数万次的高并发场景,这个指标非常关键。举个例子,我们假设处理一个业务请求平均响应时间为100ms,同时,系统内有20台Apache的Web服务器,配置MaxClients为500个(表示Apache的最大连接数目)。 那么,我们的Web系统的理论峰值QPS为...
  •  2019-02-18  |    程成  |    354  |    0  |    PHP  |   PHP  高并发  秒杀  
  • 什么是数据库?什么是关系型数据库?什么是非关系型数据库?
  • 本文内容:什么是数据库什么是关系数据库什么是非关系型数据库  PS:虽然这些东西都是一些比较基础常识的东西,但为了记录自己的学习之路,也为了为以后的一些突发奇想留下“坑”,所以写下了这篇博文。什么是数据库? 数据库是数据的仓库。与普通的“数据仓库”不同的是,数据库依据“数据结构”来组织数据,因为“数据结构”,所以我们看到的数据是比较“条理化”的(比如不会跟以前的普通文件存储式存储成一个文件那么不条理化,我们的数据库分成一个个库,分成一个个表,分成一条条记录,这些记录...
  •  2019-02-14  |    程成  |    296  |    0  |    数据库  |   数据库  关系型  SQL  
  • PHP 中 empty(),isset(),is_null() 使用区别
  • 开发 PHP 也有几年了,突然发现 empty(),isset(),is_null() 也不是那么明白。虽然之前查过使用区别,但是经常会忘记。。这次结合实例测试,记忆应该会深刻点。测试代码如下:$a; $b = false; $c = ''; $d = 0; $e = null; $f = array(); 一、empty() 实例测试var_dump...
  •  2019-02-14  |    程成  |    264  |    0  |    PHP  |   PHP  empty  isset  is_null  
  • MySQL 中 int(11) 代表什么意思
  • 一、前言在工作中经常要与mysql打交道,但是对mysql的各个字段类型一直都是一知半解,因此写本文总结记录一番。二、简介对于int类型的一些基础知识其实上图已经说的很明白了,在这里想讨论下常用的int(11)代表什么意思,很长时间以来我都以为这代表着限制int的长度为11位,直到有天看到篇文章才明白,11代表的并不是长度,而是字符的显示宽度,在字段类型为int时,无论你显示宽度设置为多少,int类型能存储的最大值和最小值永远都是固定的,这里贴一些原文片段The number in the pa...
  •  2019-02-13  |    程成  |    344  |    0  |    数据库  |   MySQL  int  整型  数据库  
  • HTTP 协议中 PUT 和 POST 使用上的区别
  • 有的观点认为,应该用POST来创建一个资源,用PUT来更新一个资源;有的观点认为,应该用PUT来创建一个资源,用POST来更新一个资源;还有的观点认为可以用PUT和POST中任何一个来做创建或者更新一个资源。这些观点都只看到了风格,争论起来也只是争论哪种风格更好,其实,用PUT还是POST,不是看这是创建还是更新资源的动作,这不是风格的问题,而是语义的问题。 在HTTP中,PUT被定义为idempotent的方法,POST则不是,这是一个很重要的区别。 “Methods ca...
  •  2019-02-13  |    程成  |    289  |    0  |    前端技术  |   HTTP   PUT  POST  协议  
  • composer基本用法
  • 安装安装 Composer,你只需要下载 composer.phar 可执行文件。curl -sS https://getcomposer.org/installer | php要检查 Composer 是否正常工作,只需要通过 php 来执行 PHAR:php composer.phar这将返回给你一个可执行的命令列表。注意: 你也可以仅执行 --check 选项而无需下载 Composer。 要获取更多的信息请使用 --help。curl&n...
  •  2019-02-13  |    程成  |    205  |    0  |    PHP  |   composer  php  用法  
  • Mac 下 composer 如何安装
  • 安装 composercurl -sS https://getcomposer.org/installer | php安装成功如下图:测试是否安装成功:php composer.phar --version //Composer version 1.4.2 2017-05-17 08:17:52如果下载失败也不用纠结了,直接去手动下载合适的版本https://getcomposer.or...
  •  2019-02-12  |    程成  |    399  |    0  |    服务器  |   Mac  composer  linux  php  
  • Mac下/usr/local/bin No such file or directory问题解决
  • 当我在 Mac 环境下安装 Laravel 时候,要先安装 Composer ,但是在安装 Composer 时候却卡住了。执行 sudo mv composer.phar /usr/local/bin/composer 时,mac报错:/usr/local/bin No such file or directory 。分析原因,在finder中command+shift+G进入目录,确实也找不到 /usr/local/bin/composer ,包括在终端中也进不到该目录。参考:https:/...
  •  2019-02-12  |    程成  |    668  |    0  |    服务器  |   linux   composer  php  brew  
  • HTTP响应头和请求头信息对照表
  • HTTP请求头提供了关于请求,响应或者其他的发送实体的信息。HTTP的头信息包括通用头、请求头、响应头和实体头四个部分。每个头域由一个域名,冒号(:)和域值三部分组成。通用头标:即可用于请求,也可用于响应,是作为一个整体而不是特定资源与事务相关联。请求头标:允许客户端传递关于自身的信息和希望的响应形式。响应头标:服务器和于传递自身信息的响应。实体头标:定义被传送资源的信息。即可用于请求,也可用于响应。HTTP Request Header 请求头Header解释示例Accept指定客户...
  •  2019-02-12  |    程成  |    275  |    0  |    前端技术  |   http  响应头  请求头  通用头  实体头