摘要:
一.索引简介 众所周知,索引是关系型数据库中给数据库表中一列或多列的值排序后的存储结构,SQL的主流索引结构有B+树以及Hash结构,聚集索引以及非聚集索引用的是B+树索引。这篇文章会总结SQL Server以及MySQL的InnoDB和MyISAM两种SQL的索引。 SQL Sever索引类型有: 阅读全文
摘要:
PHP是一门入门容易,使用范围广泛的语言,以其灵活性以及web后端开发被很多人熟知,也被很多人戏称“PHP是世界上最好的语言”。本人是一名“忠实”的PHPer,相信用过PHP的程序员都会体会到PHP数组的灵活性,相对传统的C语言,使用起来很是方便,拥有关联数组(key值可以是字符串),不需要预定义数 阅读全文
摘要:
Subject: Thank You for Your Referral Dear [同事的名字], I hope you’re doing well. I wanted to express my heartfelt thanks for referring me to [公司名]. Your s 阅读全文
摘要:
众所周知,现在的服务器可以处理多个socket连接,背后并发的实现主要有两种途径。 1. 多线程同步阻塞 2. I/O多路复用 socket的建立 聊到socket,就不得不提到socket的建立的流程。祭出经典的老图: ![jpg][1] 服务器依次使用socket,bind,listen之后就会 阅读全文
摘要:
背景 公司新开了某个项目,我在新的服务器部署了docker环境,本着ctrl+c 和ctrl+v的惯例,直接把以前的php环境的Dockerfile文件直接复制到新项目服务器那里,结果构建失败,失败的原因是某个软件包(如libpng12 dev)不存在,其中一个报错如下: 这时候我心里响起无数个草泥 阅读全文
摘要:
简介 rabbitmq是一个消息代理系统,为应用提供一个通用得消息发布,接受平台,为应用提供非阻塞的消息系统,方便进行异步处理。 优点 1. 消息的可靠性。持久化消息,消息接受确认,消息重传等可靠机制。 2. 灵活的路由。交换机可以根据广播,或者根据路由键或匹配符匹配到不同的队列。 3. 高可用的集 阅读全文
摘要:
并发安全 何为并发安全,就是多个并发体在同一段时间内访问同一个共享数据,共享数据能被正确处理。 并发不安全的后果 并发不安全最典型的案例就是卖票超售,设想有一家电影院,有两个售票窗口,售票员售票时候先看一下当前剩余票数是否大于0,如果大于0则售出票。 用伪代码就是如下: 看上去也没有什么问题,流程图 阅读全文
摘要:
channel channel是goroutine之间的通信机制,它可以让一个goroutine通过它给另一个goroutine发送数据,每个channel在创建的时候必须指定一个类型,指定的类型是任意的。 使用内置的make函数,可以创建一个channel类型: 发送和接受 channel主要的操 阅读全文
摘要:
1.goroutine goroutine是go语言的并发体。在go语言里面能使用go关键字来实现并发。 1.1 概念介绍 goroutine本质上是协程,我刚刚学习的时候就粗略地认为goroutine是线程,直到最近才开始搞明白goroutine的基本概念。 并发 在很久以前,人们希望一个计算机( 阅读全文
摘要:
在掌握了docker的基本命令之后,我也是想着去用docker做一点实际的配套环境,就拿自己最常用的lnmp环境来做测试。配套环境运行的顺序依次是mysql php nginx,至于为什么,在下面会解释。 1.MySQL 之后服务运行的镜像如无特别的提示,都是从官方拉取的镜像,对于小企业以及个人开发 阅读全文
摘要:
需要搞清楚一个概念的是,docker的容器设计理念是可以即开即用,用完可以随意删除,而新建容器是根据镜像进行渲染,容器的修改是不会影响到镜像,但是有时候容器里面运行的产生的数据(如mysql)或者配置项(如nginx的nginx.conf)我们又需要保存起来的,因而我们需要对容器某些修改的数据进行挂 阅读全文
摘要:
docker的镜像分层 docker里的镜像绝大部分都是在别的镜像的基础上去进行创建的,也就是使用镜像的分层结构。 实验 比如说使用dockerfile去创建一个最简单的hello镜像。创建好对应的dockerfile之后去进行创建: 执行了上面的命令我们可以看到存在着两个镜像,其中hello_wo 阅读全文