返回顶部
首页 > 资讯 > 精选 >Redis选择单线程的原因是什么
  • 234
分享到

Redis选择单线程的原因是什么

2023-07-05 14:07:19 234人浏览 泡泡鱼
摘要

本文小编为大家详细介绍“Redis选择单线程的原因是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“Redis选择单线程的原因是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。一、Redis版本迭代Redi

本文小编为大家详细介绍“Redis选择单线程的原因是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“Redis选择单线程的原因是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

一、Redis版本迭代

Redis选择单线程的原因是什么

Redis2.6,支持lua脚本;

Redis3.0,支持集群

Redis4.0,混合持久化,多线程异步删除;

Redis5.0,核心代码重构;

Redis6.0,多线程io

Redis7.0,Function、Multi-part-AOF;

二、Redis4.0之前为什么一直采用单线程?

Redis采用单线程模型方便开发和维护;

单线程模型也可以通过IO多路复用和非阻塞IO并发处理多客户端请求;

对于Redis来说,主要的性能瓶颈是内存和网络,而不是CPU;

三、Redis6.0引入多线程

Redis6.0之前,Redis从网络IO处理到实际的读写命令处理,都是单线程的,只不过在数据删除、数据持久化的时候使用的是多线程。

Redis的性能瓶颈主要是网络IO,因此,Redis6.0开始,采用多个IO线程来处理网络请求,提高网络请求处理的并行度。

四、Redis主线程和IO线程是如何完成请求的?

Redis选择单线程的原因是什么

1、服务端和客户端建立Socket连接

主线程负责建立连接,并把socket放入全局等待队列,主线程通过轮询的方法将socket连接分配给IO线程。

2、IO线程读取并解析请求

主线程一旦把socket分配给IO线程,就会进入阻塞状态,等待IO线程完成客户端请求,此时,采用多个IO线程并行处理。

3、主线程执行请求命令

IO线程解析完请求,主线程还是会以单线程的方式执行这些命令。

4、IO线程会写回socket和主线程清空全局队列

当主线程执行完请求命令后,会将结果写入缓冲区,主线程进入阻塞状态,等待IO线程将结果回写到socket中,并返回给客户端。

回写socket完毕后,主线程清空全局队列。

五、IO多路复用是什么?

IO多路复用,一种同步的IO模型,实现一个线程监视多个文件句柄,一旦某个文件句柄就绪就能够通知到对用的应用程序进行对应的读写操作,没有文件句柄就绪时,程序就会进入阻塞状态,释放CPU资源。

IO,操作系统层面指数据在内核态和用户态之间进行的读写操作;

多路,多个客户端socket连接;

复用,复用线程;

IO多路复用,使用单线程就能够同时处理多个客户端socket连接;

客户端socket对应的文件描述符FileDescriptor注册进epoll,epoll会监听哪些socket有消息,避免大量的无用操作。

此时socket采用非阻塞模式,整个过程只在调用select、poll、epoll时才会阻塞,收到客户端消息不会阻塞,这个进程就会被充分利用起来,这种模式一般被称为事件驱动,也就是Reactor反应模式。

采用epoll的方式,最终目的是提高服务器的吞吐能力。

IO多路复用与epoll函数才是**“Redis为什么这么快?”**的直接原因。

读到这里,这篇“Redis选择单线程的原因是什么”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注编程网精选频道。

--结束END--

本文标题: Redis选择单线程的原因是什么

本文链接: https://lsjlt.com/news/352258.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Redis选择单线程的原因是什么
    本文小编为大家详细介绍“Redis选择单线程的原因是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“Redis选择单线程的原因是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。一、Redis版本迭代Redi...
    99+
    2023-07-05
  • redis单线程快的原因是什么
    这篇文章主要为大家展示了“redis单线程快的原因是什么”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“redis单线程快的原因是什么”这篇文章吧。Redis之所...
    99+
    2024-04-02
  • redis是单线程的原因
    本篇文章给大家分享的是有关redis是单线程的原因,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。redis简介是一个key-value存储系统...
    99+
    2024-04-02
  • redis是单线程的原因有哪些
    小编给大家分享一下redis是单线程的原因有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一、Redis为什么是单线程的?因...
    99+
    2024-04-02
  • Redis单线程能支撑高并发的原因是什么
    本篇内容介绍了“Redis单线程能支撑高并发的原因是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!几种...
    99+
    2024-04-02
  • Redis为什么选择单线程?Redis为什么这么快?
    今天搞一下经典面试题Redis为什么选择单线程?Redis为什么这么快?,实现快速入门,丰富个人简历,提高面试level,给自己增加一点谈资,秒变面试小达人,BAT不是梦。 一、Re...
    99+
    2023-03-21
    redis为什么选择单线程和双线程 为什么redis是单线程的 redis单线程为什么能支持并发
  • 分布式选择使用redis的原因是什么
    分布式选择使用redis的原因是什么?可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。在项目中使用redis,主要是从两个角度去考虑:性能和并发。当然,...
    99+
    2024-04-02
  • redis单线程速度快的原因
    小编给大家分享一下redis单线程速度快的原因,希望大家阅读完这篇文章后大所收获,下面让我们一起去探讨吧!Redis之所以执行速度很快,主要依赖于以下几个原因:(一)纯内存操作,避免大量访问数据库,减少直接...
    99+
    2024-04-02
  • redis单线程需要加锁的原因
    这篇文章将为大家详细讲解有关redis单线程需要加锁的原因,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。个人理解是,虽然redis是单线程,但是可以同时有多个客户端访问,...
    99+
    2024-04-02
  • 分布式锁要选择Zookeeper而不是Redis的原因是什么
    这篇文章给大家分享的是有关分布式锁要选择Zookeeper而不是Redis的原因是什么的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。在分布式的应用中,为了防止单点故障,保障高可用,通常会采用主从结构,当主节点挂掉...
    99+
    2023-06-15
  • redis中的单线程是什么
    redis中的单线程是什么?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。官方FAQ表示,因为Redis是基于内存的操作,CPU...
    99+
    2024-04-02
  • redis单线程执行速度这么快的原因
    这篇文章主要介绍了redis单线程执行速度这么快的原因,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。Redis之所以执行速度很快,主要依赖于以下...
    99+
    2024-04-02
  • redis中单线程指的是什么
    小编给大家分享一下redis中单线程指的是什么,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!那么为什么Redis是单线程的我们首...
    99+
    2024-04-02
  • 为什么说redis是单线程的
    这篇文章主要介绍为什么说redis是单线程的,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Redis即远程字典服务,是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久...
    99+
    2024-04-02
  • 选择台湾服务器的原因是什么
    选择台湾服务器的原因可能是由于以下几点: 离中国大陆地区比较近,网络延迟较小,数据传输速度更快。 台湾服务器的网络稳定性和可靠性较...
    99+
    2024-04-26
    台湾服务器 服务器
  • redis服务中的单线程是什么
    redis服务中的单线程是什么?可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。redis是以socket方式通信,socket服务端可同时接受多个客户...
    99+
    2024-04-02
  • Redis线程模型的原理是什么
    这篇文章主要介绍“Redis线程模型的原理是什么”,在日常操作中,相信很多人在Redis线程模型的原理是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Redis线程模型的原理是什么”的疑惑有所帮助!接下来...
    99+
    2023-06-21
  • 电商行业选择小程序开店的原因是什么
    小编给大家分享一下电商行业选择小程序开店的原因是什么,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!那么对于电商行业来说,小程序有哪些优势呢?便捷小程序开店相比较而...
    99+
    2023-06-27
  • MongoDB 中索引选择B-树的原因是什么
    这期内容当中小编将会给大家带来有关MongoDB 中索引选择B-树的原因是什么,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。一、B-树和B+树的区别很明显,我们要想弄清楚...
    99+
    2024-04-02
  • 香港云主机被选择的原因是什么
    香港云主机主机被选择的原因:1. 香港云主机内的网站响应速度快,数据损失率较低,保证数据的安全性。2. 香港云主机的内容限制少,审核宽松,促进业务的发展。3. 香港云主机服务的语言沟通无障碍,出现问题能够及时解决。具体内容如下:香港云主机内...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作