Redis 为什么快

Redis 为什么快 Redis 是单线程模型相较于其他数据库如mysql、oracle、sql server为什么效率那么高速度那么快呢1、redis 访问内存数据库则是访问硬盘2、redis 的核心功能比数据库更简单数据库对于数据的插入删除查询...都有复杂的功能支持。这样的功能势必要花费更多的开销。比如针对插入删除操作数据库中的各种约束都会使数据库做额外的工作。3、单线程模型避免了一些不必要的线程竞争开销。redis 每个基本操作都是简单地操作一下内存数据是短平快的不是什么特别消耗cpu的操作。就算搞多个线程也提升不大。4、处理网络IO的时候使用了 epoll 这样的多路复用机制。这里简单介绍一下 IO多路复用机制对 TCP 服务端来说每 accept 一个客户端内核就会创建一个 socket 来表示这条连接。一个服务器服务多个客户端时就会有很多 socket。但大多数连接大部分时间都是静默的真正活跃的只是少数。如果每个客户端分配一个线程线程数会随连接数线性增长系统开销很大。IO 多路复用让一个线程可以同时管理大量 socket只处理有事件的活跃连接从而降低开销。它是内核提供的能力Linux 上常见的有 select、poll、epoll其中 epoll 在高并发、低活跃场景下效率更高。