Redis为什么被设计成单线程?Redis6.0为什么要引入多线程?

多线程的目的是通过并发来提高I/O利用率和cpu的利用率,而redis操作是基于内存的,访问速度快,cpu资源根本不是Redis的性能瓶颈,因此是单线程的。但Redis并非没有多线程,Redis中只有网络请求模块和数据操作模块是单线程的,其他的如持久化模块和集群支撑模块就是多线程的。

Redis访问速度这么快主要原因也是因为内部采用了I/O多路复用技术。

Redis6.0后,多线程的引入也只是对网络访问请求进行处理,Redis本身的数据读写依旧是单线程的。此时单线程Redis已经有了强大的性能可以满足大部分公司需求,但此时若是还需要性能上得到提升就需要引入多线程,前面的IO复用技术本质上是同步阻塞性IO,当并发量大的情况下会出现大量阻塞还是会对性能有所影响,因此引入了多线程,跟前面提到的一样,多线程技术是用于处理

网络请求的,但数据的读写还是单线程的,由于读写是单线程的同时以避免了线程不安全的情况发生。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值