文章目录 Redis数据结构 动态字符串SDS Dict SkipList Redis网络模型 IO多路复用 IO多路复用-select方式 IO多路复用模型-epoll函数 Redis是单线程的吗?为什么使用单线程 Redis内存回收 过期key处理 内存淘汰策略 Redis数据结构 动态字符串SDS String的底层数据结构是:SDS SDS之所以叫做动态字符串,是因为它具备动态扩容的能力,例如一个内容为“hi”的SDS: 假如我们要给SDS追加一段字符串“,Amy”,这里首先会申请新内存空间: 如果新字符串小于1M,则新空间为扩展后字符串长度的两倍+1; 如果新字符串大于1M,则新空间为扩展后字符串长度**+1M+1**。称为内存预分配。 Dict Hash的底层数据结构是:Dict