![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
redis
vfdn
一年liunx下c/c++开发,三年windows下c/c++开发经验,熟悉多线程、tcp/ip网络编程,熟悉vim、gdb、vs、c++builder等常用开发工具,熟练掌握sql server、timesten、sqlite等数据的开发与使用,了解PHP、python、java等开发,热爱软件技术,学习能力强
展开
-
redis源码分析—IO模型封装
redis采用的是事件驱动机制,内部封装了sunos的evport、linux下的epoll、kqueue和select,通过宏定义判定使用哪个模型。主要看了下epoll的代码,redis在每个模型中分别定义了一个aeApiState结构体,用于记录需要用到的数据,epoll中如下:typedef struct aeApiState { int epfd; s...原创 2018-11-06 13:53:52 · 465 阅读 · 0 评论 -
redis源码分析—AE事件处理机制
redis中有两类事件,一类是IO事件统一封装成aeFileEvent,底层调用系统支持的多路复用层(evport、epoll、kqueue、select),一类是定时器事件,以aeTimeEvent描述,巧妙借用系统函数epoll_wait等阻塞函数设置阻塞时间以达到触发条件/* Include the best multiplexing layer supported by this s...原创 2018-11-07 17:19:12 · 1309 阅读 · 0 评论 -
redis源码分析—字符串(sds)处理
redis中对字符串进行了一些特殊的处理,在每个字符串前面增加了一个头结构,头结构保存了字符串的长度、内存大小和类型,redis根据字符串长短定义了5种字符串头结构类型:sdshdr5(没使用)、sdshdr8、sdshdr16、sdshdr32、sdshdr64len表示字符串长度alloc表示除头部和结束标志后内存大小flags表示字符串头部的类型(SDS_TYPE_8等)bu...原创 2018-12-02 13:59:46 · 485 阅读 · 0 评论