redis选择单线程模型笔记

Redis早期采用单线程模型,利用I/O多路复用处理并发请求,避免线程同步开销。尽管4.0后部分删除操作引入多线程以异步释放内存,但主线程仍保持单线程,以减少CPU并非瓶颈的Redis的复杂性。单线程模型简化了开发和调试,多线程仅用于特定操作以提高效率。
摘要由CSDN通过智能技术生成

PS:redis在4.0前使用的是单线程模型,redis4.0后 选择性 的使用多线程模型。

概述

提出2个问题:

  1. 为什么 Redis 在最初的版本中选择单线程模型?
  2. 为什么 Redis 在 4.0 之后的版本中加入了多线程的支持?

Redis 作为一个内存服务器,它需要处理很多来自外部的网络请求,它使用 I/O 多路复用机制同时监听多个文件描述符的可读和可写状态,一旦受到网络请求就会在内存中快速处理,由于绝大多数的操作都是纯内存的,所以处理的速度会非常地快。

在 Redis 4.0 之后的版本,情况就有了一些变动,新版的 Redis 服务在执行一些命令时就会使用 主处理线程 之外的 其他线程,例如 UNLINKFLUSHALL ASYNCFLUSHDB ASYNC 等非阻塞的删除操作。

设计

虽然 Redis 在较新的版本中引入了多线程,不过是在 部分命令 上引入的,其中包括非阻塞的删除操作,在整体的架构设计上,主处理程序 还是 单线程模型的。将单线程和多线程转成2个问题:

  1. 为什么 Redis 服务使用单线程模型处理绝大多数的网络请求?
  2. 为什么 Redis 服务增加了多个非阻塞的删除操作,例如:UNLINK、FLUSHALL ASYNC 和 FLUSHDB ASYNC?(非阻塞的删
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值