一、redis真的是单线程吗?
redis在网络io和数据读写方面使用的是一个线程,持久化,数据集群同步等由其他线程而不是主线程完成,所以严格来说,redis不是单线程。
二、为什么使用单线程?
多线程会有共享资源并发访问控制问题,使用单线程,redis可以避免这些问题。而且使用单线程,redis内部实现的复杂度大大降低。
三、为啥单线程就挺快?
1.redis基于内存去操作的,且采用高效的数据结果,比如哈希表跳表等。
2.redis采用的是多路复用机制,导致网络io可以并发处理大量的客户端请求,提高吞吐量。
四、redis6为啥又要引入多线程?
redis的性能拼接,不在于cpu,而在于网络和内存。内存可以通过添加内存或者调整数据结构等优化。
但是redis的网络io读写,占用了大量的cpu时间,采用多线程处理网络io读写,性能会大大提高
五、redis基本架构模型