https://mp.weixin.qq.com/s/Z5ok9uSxZZ5NfXiVy-Ac9A

    把Redis程序加载到内存,开始执行 main 方法
    通过 listenToPort() 创建一个 TCP 连接
    socket bind listen 标准三步。建立一个 TCP 监听,并返回一个文件描述符 fd
    通过 aeCreateFileEvent() 将 fd 加入到一个叫 aeFileEvent 的链表中
    同时将这个文件描述符绑定一个函数 acceptHandler
    这样当有客户端连接进来时,便会执行这个函数
    通过 aeMain() 将 aeFileEvent 链表中的文件描述符,统统作为 select 的入参,这是 IO 多路复用模式

    客户端交互
    启动一个客户端,服务端 fd 就会感知有数据读入,并执行 acceptHandler()
    即调用 createClient 创建一个专属的 client 为其服务