Linux网络编程:epoll内核原理 Posted on 2021-09-14 Edited on 2022-10-19 In Linux Symbols count in article: 4.2k Reading time ≈ 4 mins. 内核函数poll_wait 作用:把当前进程加入到驱动里自定义的等待队列上 当驱动事件就绪后,就可以在驱动里自定义的等待队列上唤醒调用poll的进程 Read more »
Linux网络编程:同步/异步,阻塞/非阻塞,IO复用 Posted on 2021-09-14 Edited on 2022-10-19 In Linux Symbols count in article: 2.3k Reading time ≈ 2 mins. 阻塞式IO在linux中,默认情况下所有的socket都是blocking,一个典型的读操作流程大概是这样: Read more »
Linux网络编程:select/poll内核原理 Posted on 2021-09-14 Edited on 2022-10-19 In Linux Symbols count in article: 3.2k Reading time ≈ 3 mins. select函数1int select(int maxfdp,fd_set *readfds,fd_set *writefds,fd_set *errorfds,struct timeval *timeout); Read more »
c++11新特性:智能指针 Posted on 2021-09-14 Edited on 2022-10-19 In C++ Symbols count in article: 5.3k Reading time ≈ 5 mins. 为什么要引入智能指针?首先我们来看下面这个例子: Read more »
muduo网络库:并发服务器设计 Posted on 2021-09-14 Edited on 2022-10-19 In muduo Symbols count in article: 1.4k Reading time ≈ 1 mins. 常见并发服务器方案 循环式/迭代式服务器 Read more »
redis系列:RDB & AOF Posted on 2021-09-14 Edited on 2022-10-28 In Redis Symbols count in article: 2.2k Reading time ≈ 2 mins. RDB 文件结构一个完整的RDB文件包含上面各部分。 REDIS:5字节,检查是否为RDB文件。 db_version:4字节,字符串表示的整数,记录版本号。 database:0或n个数据库的键值对数据。 EOF:1字节,表示正文结束。 check_sum:8字节长无符号整数,保存一个校验和,根据前面四个部分计算得到。 Read more »
redis系列:压缩列表 Posted on 2021-09-14 Edited on 2022-10-19 In Redis Symbols count in article: 1.6k Reading time ≈ 1 mins. 基本结构在3.0版本中基本结构如下图所示: Read more »
redis系列:raft一致性算法 Posted on 2021-09-14 Edited on 2022-10-19 In Redis Symbols count in article: 3.7k Reading time ≈ 3 mins. Raft算法 基本概念在任何时刻,服务器节点都处于三个状态之一:leader、follower或者candidate。 follwer:不会发送任何请求,只相应leader和candidate的请求; leader:处理所有客户端请求,如果一个可会断和follower通信,那么follower会重定向给leader; candidate:用来选举新leader。下图展示了上面三种状态的转换: Read more »
redis系列:哨兵和集群 Posted on 2021-09-14 Edited on 2022-10-19 In Redis Symbols count in article: 2.2k Reading time ≈ 2 mins. 哨兵模式基本概念和详细流程见《Redis设计与实现》、《Redis5设计与源码分析》,只说下自己的理解。下图是一个基本的主从复制的哨兵系统:主要有三种角色:哨兵、主服务器,从服务器。 哨兵:一种特殊的redis服务端,使用哨兵专用命令。用来监控主从状态,执行故障转移等。 主服务器:执行客户端请求,同步自身数据到从服务器。 从服务器:从主服务器同步数据。 Read more »
redis系列:动态字符串 Posted on 2021-09-14 Edited on 2022-10-19 In Redis Symbols count in article: 3k Reading time ≈ 3 mins. 3.0版本redis的动态字符串在3.0中的实现如下: 12345struct sdshdr { unsigned int len; unsigned int free; char buf[];}; Read more »