vlambda博客
学习文章列表

中间件 - Redis - 基本原理 和 类型数据结构

redis的epoll为什么快

亲密度

一个机器如果有4颗cpu, redis的线程可以一直占用某颗cpu, 占用寄存器, l1,l2,l3里存的东西就不用经常切换, 达到最高速度

首先是BIO - 同步阻塞

为每个进来的连接请求, 都想创建一个线程去服务它


  • 内存成本: JVM中可以配置线程栈的大小, 可以是1M, 也可以配置得更小些, 越小的话, 最大线程数量可以越多

  • cpu调度成本: 线程越多, 切换得就越频繁

每个线程都会有较长时间的阻塞, 拿着资源不干活

.

多路复用NIO(select/poll) 同步非阻塞

一个线程可以处理多个连接(文件描述符FD)