342 字
2 分钟
Redis为什么快

Redis为什么快
- 使用内存存储
- Redis采用了IO多路复用技术的事件驱动模型来处理客户端请求,执行Redis命令
- Redis6.0引入多线程机制,把网络和I/O处理放到多个线程中,减少了单线程的瓶颈,网络IO交给线程池处理,命令仍然在主线程中进行。充分利用CPU多核的优势,提升了性能。
- Redis 对底层数据结构做了极致的优化,比如说 String 的底层数据结构动态字符串支持动态扩容、预分配冗余空间,能够减少内存碎片和内存分配的开销。
1.基于内存,内存IO比磁盘快 2. 采用 单线程 + 非阻塞 I/O + I/O 多路复用(高效处理并发)模型 3. 网络IO用上了多线程 4. 底层数据结构被专门优化过
- 单线程:单线程可以避免多线程的数据竞争和上下文切换开销。
- 非阻塞IO,Redis对客户端连接的I/O操作设置为非阻塞,主线程发起I/O操作后,不需要等待结果返回,可以继续处理其它事件。
- I/O多路复用: 主线程可以同时监听多个客户端连接的I/O事件,一旦某个事件就绪,在进行集中处理。