为什么Redis单线程却比多线程快
redis三大特点
1.Redis是基于内存,内存的读写是非常快的
2.Redis是单线程,省去了线程之间的切换并且防止了死锁现象发生
3.Redis采用多路复用的技术,可以处理并发的连接(客户端连接不占用线程资源,当指令发送成功之后通过单线程)
为什么Redis是单线程
因为Redis是基于内存,cpu已经无法成为Redis的瓶颈,Redis最有可能影响性能的就是机器的内存与网络带宽,并且可以使用多开客户端的方案解决并发连接,既然单线程容易实现,而且CPU不会成为瓶颈,那就顺理成章地采用单线程的方案了。
单线程的优劣势
1.优点
单线程逻辑清晰,代码简单
2.缺点
无法发挥多核cpu的全部性能,但是可以使用多开客户端的方式解决并发的问题。
题外
1.原子性
原子性指的是一条计算机指令发出之后不会被其他线程影响而终止。
redis 的多路复用很好的实现了程序指令的原子性
比如 java 中i++