IO多路复用
单线程
- 为什么单线程访问还快
- 纯内存访问,内存响应时间是纳秒级别
避免了上下文切换和锁竞争消耗
IO多路复用技术
数据结构也帮了不少忙,Redis全程使用hash结构,读取速度快,还有一些特殊的数据结构,对数据存储进行了优化,如压缩表,对短数据进行压缩存储,再如,跳表,使用有序的数据结构加快读取的速度
还有一点,Redis采用自己实现的事件分离器,效率比较高,内部采用非阻塞的执行方式,吞吐能力比较大
弊端
无法发挥多核CPU性能,不过可以通过在单机开多个Redis实例来完善
- 哪里是单线程? 哪里是多线程?
磁盘
磁盘 磁道 扇区 512B
epoll系统调用
linux一切皆文件 文件描述符
查看进程文件描述符 cd /proc/pid/fd ls