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 在高并发、低活跃场景下效率更高。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值