Redis学习第一弹-为什么高并发

2019-03-11  本文已影响0人  同人于野_2068

高并发原因

  1. 基于内存
    内存的存取速度很快

  2. 单线程,省去了很多上下文的切换操作
    因为基于内存的操作,CPU并不是瓶颈。Redis最有可能的瓶颈是内存大小或者网络带宽。既然CPU不是瓶颈,就没有必要设计成复杂的多线程,因此就采用了单线程的设计。

  3. 多路复用
    非阻塞IO使用epoll,epoll中的读、写、关闭、连接都转化成为事件,然后利用epoll的多路复用特性,不在io上浪费一点性能。

单线程的好处

不需要各种锁的性能损耗

Redis的数据结构不全是Key-Value,还有List和Hash等复杂的结构,比如在Hash添加或者删除一个对象,可能需要非常多的锁,导致同步开销大大增加。

劣势

无法发挥多核CPU性能,不过可以在单机多个Redis实例来完善

上一篇下一篇

猜你喜欢

热点阅读