342 字
2 分钟
Redis为什么快

Redis为什么快#

  1. 使用内存存储
  2. Redis采用了IO多路复用技术的事件驱动模型来处理客户端请求,执行Redis命令
  3. Redis6.0引入多线程机制,把网络和I/O处理放到多个线程中,减少了单线程的瓶颈,网络IO交给线程池处理,命令仍然在主线程中进行。充分利用CPU多核的优势,提升了性能。
  4. Redis 对底层数据结构做了极致的优化,比如说 String 的底层数据结构动态字符串支持动态扩容、预分配冗余空间,能够减少内存碎片和内存分配的开销。

1.基于内存,内存IO比磁盘快 2. 采用 单线程 + 非阻塞 I/O + I/O 多路复用(高效处理并发)模型 3. 网络IO用上了多线程 4. 底层数据结构被专门优化过

  • 单线程:单线程可以避免多线程的数据竞争和上下文切换开销。
  • 非阻塞IO,Redis对客户端连接的I/O操作设置为非阻塞,主线程发起I/O操作后,不需要等待结果返回,可以继续处理其它事件。
  • I/O多路复用: 主线程可以同时监听多个客户端连接的I/O事件,一旦某个事件就绪,在进行集中处理。