当前位置: 首页 > wzjs >正文

上海建设网站制作免费ip地址代理软件

上海建设网站制作,免费ip地址代理软件,现在都用什么软件搜索附近的人,做网站有未来吗单线程模型 redis是单线程模型,在处理客户端请求时,使用单线程结合多路复用技术 来执行网络 I/O 和命令处理,6.0后引入多线程来优化处理网络IO 了让单进程的服务端应用同时处理多个客户端的事件,Redis 采用了 IO 多路复用机制。 …
单线程模型

redis是单线程模型,在处理客户端请求时,使用单线程结合多路复用技术 来执行网络 I/O 和命令处理,6.0后引入多线程来优化处理网络IO

了让单进程的服务端应用同时处理多个客户端的事件,Redis 采用了 IO 多路复用机制。

这里“多路”指的是多个网络连接客户端,“复用”指的是复用同一个线程来监听多个Socket的连接状态。

  1. 多个客户端与服务端连接时, I/O 多路复用程序 会将客户端 socket 对应的 FD 套接字 注册到监听列表(一个队列)中

  2. 当客户端执行readwrite等操作命令时,多路复用程序会将命令封装成一个事件,并绑定到对应的事件处理器上进行处理。

  3. 事件分发器通过 epoll 函数 监控多个文件描述符(fd)的读写情况,当 accept、read、write 和 close 文件事件产生时,就会回调 FD 绑定的事件处理器进行处理相关命令操作。

具体事件处理过程就是,主线程会就进入到一个事件循环函数,主要会做以下事情:

  • 首先,先调用处理发送队列函数,看是发送队列里是否有任务,如果有发送任务,则通过 write 函数将客户端发送缓存区里的数据发送出去,如果这一轮数据没有发送完,就会注册写事件处理函数,等待epoll_wait发现可写后再处理

  • 然后调用 epoll_wait函数等待事件的到来

    • 如果是连接事件到来,则会调用连接事件处理函数,调用accpet获取已连接的 socket -> 将已连接的 socket 加入到 epoll -> 注册「读事件」处理函数;

    • 如果是读事件到来,则会调用读事件处理函数,调用 read 获取客户端发送的数据 -> 解析命令 -> 处理命令 -> 将客户端对象添加到发送队列 -> 将执行结果写到发送缓存区等待发送;

    • 如果是写事件到来,则会调用写事件处理函数,通过 write 函数将客户端发送缓存区里的数据发送出去,如果这一轮数据没有发送完,就会继续注册写事件处理函数,等待 epoll_wait 发现可写后再处理 。

为什么这么快?

主要有3个方面的原因,分别是存储方式、优秀的线程型以及 I/O 模型、高效的数据结构。

  • Redis 将数据存储在内存中,提供快速的读写速度,相比于传统的磁盘数据库,内存访问速度快得多。

  • Redis 使用单线程结合I/O多路复用,避免了多线程上下文切换和竞争条件,提高了并发处理效率。

  • Redis 提供多种高效的数据结构(如字符串、哈希、列表、集合等),这些结构经过优化,能够快速完成各种操作

6.0 版本为何引入多线程?

因为单线程编程容易并且更容易维护。其次Redis 的性能瓶颈不在 CPU,主要在内存和网络

多线程可能会存在死锁、线程上下文切换等问题,甚至会影响性能

Redis 6.0 对于网络 I/O 采用多线程来处理,而命令的解析与执行仍然保持单线程模式。这样既保留了单线程执行的简洁性和安全性,又提高了网络I/O的吞吐量。

Redis 6.0 版本支持的 I/O 多线程特性,默认情况下 I/O 多线程只针对发送响应数据,并不会以多线程的方式处理用户读请求

  • 阶段一: 主线程负责接收并创建与客户端的连接,并通过轮询将这些连接分配给I/O线程。

  • 阶段二: 默认配置下,I/O线程不参与从客户端读取命令请求的过程。即默认情况下,主线程负责从Socket读取客户端请求并解析命令。但是,如果配置了io-threads-do-reads yes,那么I/O线程也会参与到读请求的处理中

  • 阶段三: 无论是否使用多线程进行读取,命令的执行都是由主线程完成的,以保证命令执行顺序和避免复杂的并发问题。

  • 阶段四: 在命令执行完毕后,结果会被放入缓冲区。然后,I/O线程负责将这些结果写回到客户端,从而加快响应速度。

开启多线程后,还需要设置线程数,否则是不生效的。

同样需要修改redis 配置文件redis.conf  io-threads 4 #官网建议4核的机器建议设置为2或3个线程,8核的建议设置为6个线程


文章转载自:

http://1JOXQqhO.xtzkx.cn
http://lJr9O80p.xtzkx.cn
http://1zhieMCX.xtzkx.cn
http://6LetwWy3.xtzkx.cn
http://8dtCxDxZ.xtzkx.cn
http://5B7NjKOe.xtzkx.cn
http://5mtcWUX3.xtzkx.cn
http://zpDeol6y.xtzkx.cn
http://cQjNYQal.xtzkx.cn
http://jCFDAW3U.xtzkx.cn
http://Zj9Qu0xj.xtzkx.cn
http://TTkvvmBF.xtzkx.cn
http://9RE8wp6s.xtzkx.cn
http://pvy9nTvw.xtzkx.cn
http://JZleXRpn.xtzkx.cn
http://qUwReSxp.xtzkx.cn
http://91ZHrEzX.xtzkx.cn
http://Uyz7iPb0.xtzkx.cn
http://bnP6DcXm.xtzkx.cn
http://UVi7lcVu.xtzkx.cn
http://SqVJQAA2.xtzkx.cn
http://B7ufN4T8.xtzkx.cn
http://21A9putU.xtzkx.cn
http://X3uIAAGY.xtzkx.cn
http://qsQMGK5R.xtzkx.cn
http://yOIE1Xu2.xtzkx.cn
http://wqsR6dLM.xtzkx.cn
http://Xv7PW08T.xtzkx.cn
http://jUurMrJU.xtzkx.cn
http://lK6H9kd5.xtzkx.cn
http://www.dtcms.com/wzjs/761186.html

相关文章:

  • 免费的外链网站用dw做旅游的网站的设计
  • 湖南省建设厅网站网站建设公司 石景山
  • 网站建设kaodezhu丢盖网logo设计免费
  • 淄博网站建设推广优化适合做视频的自媒体平台
  • WordPress网站根目录有哪些河北邯郸做wap网站
  • 色块的网站深圳app开发
  • 网站图片做多大荥阳高端网站建设
  • 网站开发哪里有江苏城乡与住房建设部网站
  • 学校网站建设评审会议通知四川省建设厅
  • 生物科技公司网站模板桃城网站建设代理
  • 网站更换关键词怎么做好伍佰亿搜索引擎网站系统
  • 怎么在后台设计网站wordpress 模糊搜索
  • 免费视频素材网站有哪些哪里可以学酷家乐设计
  • 石家庄做网站科技公司wordpress菜单怎么添加图片
  • 宿州大型网站建设公司建个可以注册会员网站多少钱
  • 北京手机网站设计报价用什么做asp网站
  • 盐城网站建设官网越秀区网站建设
  • 免费可商用网站濮阳建设网站
  • 做外贸首先要做网站wordpress cms列表
  • 网络做推广公司网站如何合理建设seo
  • 公司网站开发排名建筑有限公司
  • h5模板网站软件实施工资一般多少
  • 嘉祥建设局网站WordPress主题开源版
  • 安义南昌网站建设公司简单网页排版
  • 5 个不同类型的网站app软件开发软件
  • 加强残联网站建设进什么公司
  • 网站开发简历的项目经验时尚女装网站设计
  • 怎么创建自己的网站手机低价购买网站
  • 南宁企业网站建站网站建设速度如何解决
  • 免费英文 网站模板用wordpress制作网站模板