千家信息网

Redis单线程的reactor模型是怎样的

发表于:2024-12-13 作者:千家信息网编辑
千家信息网最后更新 2024年12月13日,这篇文章主要讲解了"Redis单线程的reactor模型是怎样的",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"Redis单线程的reactor模型是怎
千家信息网最后更新 2024年12月13日Redis单线程的reactor模型是怎样的

这篇文章主要讲解了"Redis单线程的reactor模型是怎样的",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"Redis单线程的reactor模型是怎样的"吧!

redis 的高性能

  • 纯内存访问,所有数据都在内存中,所有的运算都是内存级别的运算,内存响应时间的时间为纳秒级别。因此 redis 进程的 cpu 基本不存在磁盘 I/O 等待时间、内存读写性能问题,CPU 不是 redis 的瓶颈(内存大小和网络I/O 才是 redis 的瓶颈,也就是客户端和服务端之间的网络传输延迟)。【相关推荐:Redis视频教程】

  • 采用单线程模型,单线程实现简单。避免了多线程频繁上下文切换,以及同步机制如锁带来的开销

  • 简单高效的基础数据结构:动态字符串(SDS),链表,字典,跳跃链表,整数集合和压缩列表。然后 redis 在这个基础上去实现用户能操作的对象:字符串,列表,哈希,集合,有序集合等对象

  • reactor 模式的网络事件处理器。它使用了 I/O 多路复用去同时监控多个套接字,这是一种高效的I/O模型。reactor 相关知识可以看下这篇文章 框架篇:见识一下linux高性能网络IO+Reactor模型

为什么使用单线程

  • 采用单线程,避免了不必要的上下文切换和竞争条件;不存在多线程导致的切换而消耗CPU

  • 不用考虑各种锁的问题,不存在加锁和释放锁的的操作,没有因为可能出现的死锁而导致的性能消耗

  • 简单可维护,多线程模式会使得程序的编写更加复杂和麻烦,单线程实现易实现

redis 是单线程系统?

  • 我们常说 redis 单线程是指其网络事件处理模型 reactor 是单线程

  • 如果一次 client 请求会删除几百万 keys 值,那么这条命令可能会导致阻塞。在 redis 4.0 选择引入多线程来实现这一类非阻塞的命令

  • 在 redis6.0 版本正式引入多线程去处理客户端的 I/O 读写响应,而 redis 命令事件的处理还是在主线程单线处理

  • 假如是针对整个 redis 系统,则一直有其他线程去处理异步任务,如 AOF、RDB 的同步

redis I/O模型

  • redis 处理快,不单单因为它是个单线程纯内存系统,还有它采用了 Reactor 模型,使用 I/O 多路复用来实现对外部请求的处理,减少网络连接、读写等待时间。使其在网络 I/O 操作中能并发处理大量的客户端请求,实现高吞吐率,高并发

redis 的多线程版本I/O模型 6.0

感谢各位的阅读,以上就是"Redis单线程的reactor模型是怎样的"的内容了,经过本文的学习后,相信大家对Redis单线程的reactor模型是怎样的这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!

线程 模型 处理 内存 网络 时间 事件 命令 客户 系统 问题 切换 学习 上下 上下文 内容 基础 字符 字符串 客户端 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 网络安全员必备技能 手机单机软件开发需要学什么 网络安全青少年期日活动方案 东城区正规软件开发风格 静态网页怎么与数据库连接 昆明软件开发行业swto 常州数字化智慧医院软件开发 数据库操作查询的四个类型 灌南选择网络技术排名靠前 互联网思维切入金融科技赛道 网络安全推广者 软件开发安卓机构 微信上说无法连接服务器什么意思 华为软件软件开发云 杭州运营网络技术费用是多少 成都戟牧岳软件开发工作室 软件开发工作人员的工作计划 茅箭区智能软件开发案例 一流网络安全xueyuan 网络技术应用选修三学生分析 如何快速比较两列数据库 网络技术是哪一年开始 杨浦区技术网络技术供应 校园网络安全活动方案 地税网络安全制度建设 分组排序最快的数据库 青岛慧众智源互联网科技 数据库系统概论实验指导书 数据库系统概念 第6版 软件开发质量管理计划
0