Redis 单线程

Redis单线程架构

Redis的单线程架构的效果为:Redis的单线程是对于服务端而言的,Redis允许多个Redis用户端同时在线操作,但同时只有一个用户端在和服务端交互。多个用户同时发送请求一定不会同时执行。
在这里插入图片描述

Redis 单线程访问速度

通常来讲,单线程处理能⼒要⽐多线程差,那么为什么 Redis 使⽤单线程模型会达到每秒万级别的处理能⼒呢?可以将其归结为三点:

①纯内存访问。Redis 将所有数据放在内存中,内存的响应时⻓⼤约为 100 纳秒,这是 Redis 达
到每秒万级别访问的重要基础。

② ⾮阻塞 IO。Redis 使⽤ epoll 作为 I/O 多路复⽤技术的实现,再加上 Redis ⾃⾝的事件
处理模型将 epoll 中的连接、读写、关闭都转换为事件,不在⽹络 I/O 上浪费过多的时间

③ 单线程避免了线程切换和竞态产⽣的消耗。单线程可以简化数据结构和算法的实现,让程序模
型更简单;其次多线程避免了在线程竞争同⼀份共享数据时带来的切换和等待消耗。

IO多路复用原理

下图中最后一种即为 异步IO多路复用原理
在这里插入图片描述
下图不是epoll,但类似
在这里插入图片描述

相关推荐

  1. Redis单线

    2024-02-09 23:42:01       6 阅读
  2. Redis单线的正确理解(一)

    2024-02-09 23:42:01       43 阅读
  3. Redis 为什么是单线的?

    2024-02-09 23:42:01       38 阅读
  4. redis为什么用单线模型

    2024-02-09 23:42:01       37 阅读
  5. redis单线还快的原因

    2024-02-09 23:42:01       29 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-02-09 23:42:01       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-02-09 23:42:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-02-09 23:42:01       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-02-09 23:42:01       20 阅读

热门阅读

  1. C#中的 async void 、 async Task与async Task<TResult>

    2024-02-09 23:42:01       26 阅读
  2. 使用Dubbo实现微服务之间的高效通信

    2024-02-09 23:42:01       27 阅读
  3. 【更新】cyのMemo(20240209~)

    2024-02-09 23:42:01       30 阅读
  4. C++中用Boost::Python调用Python模块

    2024-02-09 23:42:01       31 阅读
  5. IP和ARP相关问题

    2024-02-09 23:42:01       24 阅读
  6. 管理工具npm与cnpm、npx、nvm、yarn、pnpm的区别

    2024-02-09 23:42:01       25 阅读