Redis RESP 通信协议 · Analyze

Redis 是 client-server 架构的软件,了解 Redis 客户端与服务端的通信原理,可以更好地理解 Redis 的工作方式。Redis 客户端和服务端之间使用 RESP(REdis Serialization Protocol) 二进制安全文本协议进行通信,该协议是专为 Redis 设计的,但由于该协议实现简单,也可以将其用于其他的项目中。

Redis 对象的实现 · Analyze

Redis 内部实现了一组比较全面的数据结构类型,但并没有直接使用这些数据结构来实现键值对数据库,而是构建了一个对象系统,利用对象系统将这些数据结构进一步封装。对象系统的设计不但可以针对不同的使用场景,为一种键值对设置不同的底层数据结构,还简化了键值对的回收、共享等操作。这篇文章将简要分析 Redis 对象系统的实现。

为什么进程 fork 采用写时复制 · Why

fork 是目前使用最广泛的进程创建机制,进程通过系统调用函数 fork 能够创建若干个新的进程,前者称为父进程,后者称为子进程。为了减少进程创建的开销,现代操作系统会使用`写时复制`技术,父进程与子进程共享同一内存空间,从而实现数据的“拷贝”,这篇文章将会分析这个问题。

浅论并发编程中的同步问题 · Analyze

为什么要考虑同步问题?在很多时候,我们需要多个进程或线程之间相互配合完成一个任务,多个串行程序可能都要对一个共享资源进行访问,或者相互传递一些数据。这种情况下,我们需要协调程序的执行。同步的作用是避免在并发访问共享资源时可能发生的冲突,以及确保有条不紊地传递信息。

浅析进程与线程的设计 · Analyze

并发这个概念由来已久,其主要思想是使多个任务可以在同一个时间段内下执行以便更快地得到结果。最早支持并发编程的语言是汇编语言,不过那时并没有任何的理论基础来支持这种编程方式,一个细微的编程错误就可能使程序变得非常不稳定,而且对程序的测试也几乎是不可能的。随着计算机软硬件技术的发展,如今并发程序的编写早已没有以前那么复杂。做为并发编程中的底层基础,本篇文章将会浅入浅出,简要分析进程与线程的设计原理。