架构师成长记_第五周_05_Redis 线程模型 (简述: 多路复用器, 阻塞与非阻塞)

文章目录

  • Redis 线程模型(Redis 是单线程)
    • 1. 阻塞与非阻塞
      • 阻塞: (一对一)
      • 非阻塞: (多对一, 即多路复用模式, 同步非阻塞模式)
    • 2. 多路复用器
    • 3. Redis 的线程模型
      • PS: 使用单线程的原因

Redis 线程模型(Redis 是单线程)

1. 阻塞与非阻塞

阻塞: (一对一)

当一个用户访问我们的服务器, 只有当这个用户被服务器处理完后, 下一个用户才能进行访问我们的服务器, 若服务器没有处理完第一个用户的请求, 那么第二个, 第三个请求就会被阻塞, 只有服务器处理完成后才能让后续用户进行访问.
在高并发情况下, 这种效率极其低下.

非阻塞: (多对一, 即多路复用模式, 同步非阻塞模式)

多个用户可以进行请求访问我们的服务器, 服务器会按某种算法进行依次给予响应.

在高并发情况下, 这种效率较好, 性能好.

2. 多路复用器

就是只进行接收用户的请求, 而不做具体的操作实现, 接受请求后交给后续的控制器进行处理.
多路复用器就是使用的同步非阻塞的多对一模式, 因此它的的性能效率很高.

3. Redis 的线程模型

架构师成长记_第五周_05_Redis 线程模型 (简述: 多路复用器, 阻塞与非阻塞)_第1张图片

PS: 使用单线程的原因

多线程情况下, 有可能会设计上下文内容的切换, 上下文切换就有可能出现一些问题, 这样的话, 使用单线程就会避免出现问题和一些资源的损耗, 同样在使用单线程模式的时候, 它的并发性, 效率是非常高的.

你可能感兴趣的:(You,Are,the,Architect,多线程,redis,分布式)