【redis其它面试问题】

redis是单线程,为什么还那么快

1. ​​纯内存操作​​

所有数据存储在内存中,读写速度比磁盘快 ​​100,000倍​​ 以上(内存访问约 100ns,SSD 约 1ms)。
避免传统数据库的磁盘 I/O 瓶颈。

2. ​​单线程无锁竞争​​

单线程避免了多线程的​​上下文切换​​和​​锁竞争​​开销。

3. ​​使用 I/O 多路复用​​,非阻塞IO

解释一下I/O多路复用模型

Redis是纯内存操作,执行速度非常的快,它的性能瓶颈是网络延迟而不是执行速度,I/O多路复用模型主要就是实现了高效的网络请求

多路复用器
监听
监听
监听
读/写
读/写
fd1
调用select/epoll阻塞等待
fd2
...
启动
注册fd到多路复用器
有fd就绪?
处理就绪的fd
  • 初始化:将需要监听的fd(如Socket)注册到多路复用器(如 epoll)。
  • 阻塞监听:调用 epoll_wait 阻塞线程,直到至少一个fd就绪。
  • 事件触发:当某个fd就绪(如客户端发送数据),多路复用器返回就绪的fd列表。
  • 非阻塞处理:程序遍历就绪的fd,执行读/写操作(不会阻塞其他fd的处理)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值