摘要: 经历过一次mysql主从延迟之后,就开始思考,主从复制是什么东西?它是怎么实现的呢?它的原理是什么?于是乎就开始查阅资料、文章,现将自己理解到的内容总结在此,加深印象。阅读全文
posted @ 2017-07-11 10:30 hoohack 阅读(580) 评论(5) 编辑
摘要: 最近开发中遇到的一个MySQL主从延迟的坑,记录并总结,避免再次犯同样的错误。阅读全文
posted @ 2017-06-24 14:13 hoohack 阅读(157) 评论(0) 编辑
摘要: cJSON是一个轻量级的json解析库。使用起来非常简单,整个库非常地简洁,核心功能的实现都在cJSON.c文件,非常适合阅读源代码来学习C语言。最近读完这个库的源码,分享自己收获的一些心得。阅读全文
posted @ 2017-04-27 11:44 hoohack 阅读(375) 评论(0) 编辑
摘要: 在学习Redis的常用操作时,经常看到介绍说,Redis的set、get以及hset等等命令的执行都是原子性的,但是令自己百思不得其解的是,为什么这些操作是原子性的? ## 原子性 原子性是数据库的事务中的特性。在数据库事务的情景下,原子性指的是:一个事务(transaction)中的所有操作,要么全部完成,要么全部不完成,不会结束在中间某个环节。[【维基百科】](https://zh.wikipedia.org/wiki/ACID) 对于Redis而言,命令的原子性指的是:一个操作的不可以再分,操作要么执行,要么不执行。阅读全文
posted @ 2017-04-04 22:48 hoohack 阅读(563) 评论(3) 编辑
摘要: 在正常的开发中,应该根据不同的请求做出不同的响应。要做到上述的功能,首先要解析客户端发来的请求报文。 报文在不同的上下文情景下有不同的理解,本文所说的报文都是在HTTP上下文中描述的名词。阅读全文
posted @ 2016-11-07 07:36 hoohack 阅读(802) 评论(1) 编辑
摘要: HTTP服务器,就是一个运行在主机上的程序。程序启动了之后,会一直在等待其他所有客户端的请求,接收到请求之后,处理请求,然后发送响应给客户端。客户端和服务器之间使用HTTP协议进行通信,所有遵循HTTP协议的程序都可以作为客户端。阅读全文
posted @ 2016-10-28 17:34 hoohack 阅读(719) 评论(2) 编辑
摘要: 在日常编程中最烦恼的就是给变量取名,一段好代码,既要能完美地运行,还要能较容易地维护。这就意味着需要让日后维护代码的人能很快地看懂你的代码,而且,在团队合作中,其他开发者也会经常阅读你那部分代码。如果你的代码中充满了a,b,c,a1,a2,a3...那简直就是一个噩梦。因此,好的变量名非常重要。阅读全文
posted @ 2016-07-25 10:56 hoohack 阅读(920) 评论(7) 编辑
摘要: 在PHP内核中,其中一个很重要的数据结构就是HashTable。我们常用的数组,在内核中就是用HashTable来实现。那么,PHP的HashTable是怎么实现的呢?最近在看HashTable的数据结构,但是算法书籍里面没有具体的实现算法,刚好最近也在阅读PHP的源码,于是参考PHP的HashTable的实现,自己实现了一个简易版的HashTable,总结了一些心得,下面给大家分享一下。阅读全文
posted @ 2016-07-05 11:55 hoohack 阅读(2554) 评论(2) 编辑
摘要: 最近花了些时间重拾数据结构的基础知识,先尝试了红黑树,花了大半个月的时间研究其原理和实现,下面是学习到的知识和一些笔记的分享。望各位多多指教。阅读全文
posted @ 2016-06-27 11:53 hoohack 阅读(664) 评论(3) 编辑
摘要: array_slice和array_splice函数是用在取出数组的一段切片,array_splice还有用新的切片替换原删除切片位置的功能。类似javascript中的Array.prototype.splice和Array.prototype.slice方法。阅读全文
posted @ 2016-06-08 14:33 hoohack 阅读(598) 评论(1) 编辑
摘要: 字符串的操作函数中,字符串的大小写转换也算是比较常用的函数,其底层实现也比较简单,下面来一探究竟。阅读全文
posted @ 2016-06-02 16:40 hoohack 阅读(212) 评论(0) 编辑
摘要: 在PHP编程中,在遍历数组的时候经常需要先计算数组的长度作为循环结束的判断条件,而在PHP里面对数组的操作是很频繁的,因此count也算是一个常用函数,下面研究一下count函数的具体实现。阅读全文
posted @ 2016-05-31 13:43 hoohack 阅读(362) 评论(2) 编辑
摘要: 上篇文章介绍了PHP添加元素到数组的函数,那么当然有从数组中删除元素。array_pop和array_shift只从数组的头或尾删除一个元素。经过阅读源码,发现这两个函数的实现都是调用了同一个函数--_phpi_pop来实现从数组中删除一个数组元素的功能。因此解读时将这两个函数一并讲了。阅读全文
posted @ 2016-05-30 08:05 hoohack 阅读(359) 评论(1) 编辑
摘要: 在PHP中,在数组中添加元素也是一种很常用的操作,分别有在数组尾部和头部添加元素,看看PHP内部是如何实现数组插入的操作。阅读全文
posted @ 2016-05-27 11:55 hoohack 阅读(403) 评论(1) 编辑
摘要: 近日被问到PHP中empty和isset函数时怎么判断变量的,刚开始我是一脸懵逼的,因为我自己也只是一知半解,为了弄懂其真正的原理,赶紧翻开源码研究研究。经过分析可发现两个函数调用的都是同一个函数,因此本文将对两个函数一起分析。阅读全文
posted @ 2016-05-26 11:27 hoohack 阅读(558) 评论(4) 编辑