摘要:
作为web开发的一员,相信大家的面试经历里少不了会遇到这个问题:redis是怎么做持久化的? 阅读全文
摘要:
redis中的很多操作都是基于上面介绍的redis对象,了解这些对象的底层实现,可以为之后更多的redis特性做准备。 阅读全文
摘要:
dict是一种用于保存键值对的抽象数据结构,在redis中使用非常广泛,比如数据库、哈希结构的底层。 阅读全文
摘要:
从开始工作就开始使用Redis,也有一段时间了,但都只是停留在使用阶段,没有往更深的角度探索,每次想读源码都止步在阅读书籍上,因为看完书很快又忘了,这次逼自己先读代码。因为个人觉得写作需要阅读文字来增强灵感,那么写代码的,就阅读更多代码来增强灵感吧。 阅读全文
摘要:
上次讲到[PHP是如何解析大整数](http://www.hoohack.me/2017/09/14/learning-php-big-number-detail)的,一笔带过了number_format的处理,再详细阅读该函数的源码,以下是小分析。 阅读全文
摘要:
浮点数精度丢失是一个长久的问题,PHP中精度丢失并不是PHP的bug,是计算机表示范围导致的问题。精度,这个问题的原因看起来不太重要,虽然学这个对于实际上的业务开发也没什么用,不会让你的开发能力“duang"地一下上去几个level,但是了解了PHP对于大整数的处理,也是自己知识框架的一个小小积累,知道了为什么之后,在日常开发中就会多加注意,比如从存储以及使用赋值的角度。了解这个细节还是很有好处的。 阅读全文
摘要:
经历过一次mysql主从延迟之后,就开始思考,主从复制是什么东西?它是怎么实现的呢?它的原理是什么?于是乎就开始查阅资料、文章,现将自己理解到的内容总结在此,加深印象。 阅读全文
摘要:
最近开发中遇到的一个MySQL主从延迟的坑,记录并总结,避免再次犯同样的错误。 阅读全文
摘要:
cJSON是一个轻量级的json解析库。使用起来非常简单,整个库非常地简洁,核心功能的实现都在cJSON.c文件,非常适合阅读源代码来学习C语言。最近读完这个库的源码,分享自己收获的一些心得。 阅读全文
摘要:
在学习Redis的常用操作时,经常看到介绍说,Redis的set、get以及hset等等命令的执行都是原子性的,但是令自己百思不得其解的是,为什么这些操作是原子性的?
## 原子性
原子性是数据库的事务中的特性。在数据库事务的情景下,原子性指的是:一个事务(transaction)中的所有操作,要么全部完成,要么全部不完成,不会结束在中间某个环节。[【维基百科】](https://zh.wikipedia.org/wiki/ACID)
对于Redis而言,命令的原子性指的是:一个操作的不可以再分,操作要么执行,要么不执行。 阅读全文
摘要:
在正常的开发中,应该根据不同的请求做出不同的响应。要做到上述的功能,首先要解析客户端发来的请求报文。
报文在不同的上下文情景下有不同的理解,本文所说的报文都是在HTTP上下文中描述的名词。 阅读全文
摘要:
HTTP服务器,就是一个运行在主机上的程序。程序启动了之后,会一直在等待其他所有客户端的请求,接收到请求之后,处理请求,然后发送响应给客户端。客户端和服务器之间使用HTTP协议进行通信,所有遵循HTTP协议的程序都可以作为客户端。 阅读全文
摘要:
在日常编程中最烦恼的就是给变量取名,一段好代码,既要能完美地运行,还要能较容易地维护。这就意味着需要让日后维护代码的人能很快地看懂你的代码,而且,在团队合作中,其他开发者也会经常阅读你那部分代码。如果你的代码中充满了a,b,c,a1,a2,a3...那简直就是一个噩梦。因此,好的变量名非常重要。 阅读全文
摘要:
在PHP内核中,其中一个很重要的数据结构就是HashTable。我们常用的数组,在内核中就是用HashTable来实现。那么,PHP的HashTable是怎么实现的呢?最近在看HashTable的数据结构,但是算法书籍里面没有具体的实现算法,刚好最近也在阅读PHP的源码,于是参考PHP的HashTable的实现,自己实现了一个简易版的HashTable,总结了一些心得,下面给大家分享一下。 阅读全文
摘要:
最近花了些时间重拾数据结构的基础知识,先尝试了红黑树,花了大半个月的时间研究其原理和实现,下面是学习到的知识和一些笔记的分享。望各位多多指教。 阅读全文