不要急,不要急,马上好^_^...

Redis


Redis

Redis为什么快?

​ Redis的数据是存储在内存上的,访问数据的时候可以直接访问内存即可,不需要通过cpu访问磁盘。因此可以知道redis的性能问题不在CPU上。

Redis为什么使用单线程?

  • redis中的单线程是针对网络IO模块和读写模块,除了这两个模块外,其他的持久化和集群模块都是多线程的
  • 单线程就没有多线程那样的上下文切换带来的性能开销
  • 在单线程中使用了多路复用I/O技术

Redis为什么不使用多线程?

多线程的目的是什么?

​ 通过并发的方式提供I/O利用率和CPU利用率

思考:既然知道了多线程的目的,那么思考为什么不用呢?

  • redis的数据是存储在内存上的,所以不需要通过CPU访问磁盘,redis的性能瓶颈不在cpu上,所以多线程提高CPU的利用率就不符合了
  • redis确实是一个I/O操作密集型的框架,要提升redis的性能肯定是要从IO进行下手的,但是提升IO的利用率不一定非要使用多线程,因为使用多线程会带来线程安全问题,还有线程切换带来的性能消耗。

Redis选择多路复用IO技术


文章作者: Mr Hou
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Mr Hou !
希望得到你的建议哦
  目录