09-Redis 进阶原理篇:单线程、多线程、过期、LRU-LFU、Fork 与 LuaRedis 的单线程被讲了太多年,讲法基本固定成一句「内存加单线程加 IO 多路复用」。这句话没错,但它解释不了一串更具体的问题。既然只有一个线程执行命令,它凭什么挂住几万个连接,为什么 6.0 又要加多线程,加了多线程之后慢命令为什么照样卡死整个实例,过期的 key 到底是谁在什么时候删掉的,内存满了 Redis 凭什么决定淘汰哪一个,fork 之后那几十 GB 内存到底复制没复制,Lua 脚本的原子性从哪来,Pipeline 和事务和 Lua 又该怎么选。