【redis】redis是单线程还是多线程,redis为什么那么快?

一、Redis有多快?

官方:单机可以支持约10w/s的QPS

二、Redis为什么这么快?

1、【基于内存操作】数据缓存在内存中,避免了磁盘io的开销
2、【数据结构与算法】如:string 类型的value做了压缩表,和list查询做了跳表查询。
3、【单线程】省去了很多上下文切换的时间以及CPU消耗,不存在多线程锁的竞争。
4、【IO多路复用】基于事件驱动,Reactor 响应式模式,(避免线程的开销)

三、为什么Redis是单线程?

官方给出的答案是:CPU不是主要瓶颈,主要瓶颈是 内存和带宽。所以单线程是最佳选择。

四、Redis6.0 的多线程:

1、Redis6.0 之前为什么一直不使用多线程?

因为单线程足以应对大部分场景,且可避免多线程带来的并发安全问题和复杂性,同时 Redis 的性能瓶颈主要在内存和网络而非 CPU

2、Redis6.0 为什么要引入多线程呢?

为了提高网络IO处理能力(请求网络和网络响应),解决网络读写的性能瓶颈,从而提升整体吞吐量。

3、Redis6.0 如何开启多线程?

默认是关闭的。可以在conf文件进行配置开启:
io-threads-do-reads yes
io-threads 线程数

4、多线程模式下,是否存在线程并发安全问题?

不存在,因为核心的命令执行仍由单线程处理,多线程仅负责网络 IO 操作(如连接和响应)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值