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

php网站iis设置经典logo设计及寓意

php网站iis设置,经典logo设计及寓意,网站备案 深圳,张家港建网站的公司1.Redis的单线程 Redis的单线程主要是指Redis的网络IO和键值对读写是由一个线程完成的#xff0c;Redis在处理客户端的请求时包括获取#xff08;Socket读#xff09;、解析、执行、内容返回#xff08;Socket写#xff09;等都由一个顺序串行的主线程处理#xff0c;这…1.Redis的单线程 Redis的单线程主要是指Redis的网络IO和键值对读写是由一个线程完成的Redis在处理客户端的请求时包括获取Socket读、解析、执行、内容返回Socket写等都由一个顺序串行的主线程处理这就是所谓的“单线程”。这也是Redis对外提供键值存储服务的主要流程。 但Redis的其他功能比如持久化RDB、AOF、异步删除、集群数据同步等等其实是由额外的线程执行的。 2.Redis的多线程 从redis6.x开始采用多线程让多个线程高效的处理多个连接请求尽量减少网络IO的时间消耗将最耗时的Socket的读取、请求解析、写入外包出去剩下的命令执行仍然由主线程串行执行并和内存的数据交互。 也就是说就新增了多线程的功能来提高 I/O 的读写性能使多个 socket 的读写可以并行化。 3.Redis快的原因 1.基于内存 2.简单的数据结构 3.单线程避免上下文切换 4.IO多路复用。 4.IO多路复用 一种同步的IO模型实现一个线程监视多个文件句柄一旦某个文件句柄就绪就能够通知到对应应用程序进行相应的读写操作没有文件句柄就绪时就会阻塞应用程序从而释放cpu资源。一个专家大夫和多个病人之间的关系。 Io多路复用单个进程能够实现处理多个客户端的连接请求。或者一个服务进程能够可以同时处理多个套接字描述符。 epoll的原理将用户socket对应的文件描述符注册进epoll然后epoll帮你监听哪些socket上有消息到达。此时的socket应该采用非阻塞模式。这样整个过程只有在调用select、poll、epoll这些调用的时候才会阻塞收发客户信息是不会阻塞的整个进程或者线程就被充分利用起来。这就是事件驱动所谓的Reactor反应模式。 4.1Redis的事件处理器 Redis基于Reactor模式开发了自己的网络事件处理器-文件事件处理器fiel event handler, FEH,该处理器是单线程的所以redis就是单线程模式。 采用I/O多路复用同时监听多个socket根据socket当前执行的事件来为 socket 选择对应的事件处理器。 当被监听的socket准备好执行accept、read、write、close等操作时和操作对应的文件事件就会产生这时FEH就会调用socket之前关联好的事件处理器来处理对应事件。 所以虽然FEH是单线程运行但通过I/O多路复用监听多个socket不仅实现高性能的网络通信模型又能和Redis 服务器中其它同样单线程运行的模块交互保证了Redis内部单线程模型的简洁设计。 下面来看文件事件处理器的几个组成部分。 I/O 多路复用程序会将所有产生事件的socket放入队列 通过该队列以有序、同步且每次一个socket的方式向文件事件分派器传送socket。 4.1.1文件事件分派器 文件事件分派器接收IO多路复用程序传来的socket并根据socket产生的事件类型调用相应的事件处理器。 4.1.2文件事件处理器 服务器会为执行不同任务的套接字关联不同的事件处理器 这些处理器是一个个函数 它们定义了某个事件发生时 服务器应该执行的动作。 Redis 为各种文件事件需求编写了多个处理器若客户端连接Redis对连接服务器的各个客户端进行应答就需要将socket映射到连接应答处理器写数据到Redis接收客户端传来的命令请求就需要映射到命令请求处理器从Redis读数据向客户端返回命令的执行结果就需要映射到命令回复处理器当主服务器和从服务器进行复制操作时 主从服务器都需要映射到特别为复制功能编写的复制处理器。 5.Reactor模式 5.1单线程Reactor模式 服务器端的Reactor是一个线程对象该线程会启动事件循环并使用Acceptor事件处理器关注ACCEPT事件这样Reactor会监听客户端向服务器端发起的连接请求事件(ACCEPT事件)。 客户端向服务器端发起一个连接请求Reactor监听到了该ACCEPT事件的发生并将该ACCEPT事件派发给相应的Acceptor处理器来进行处理。建立连接后关注的READ事件这样一来Reactor就会监听该连接的READ事件了。 当Reactor监听到有读READ事件发生时将相关的事件派发给对应的处理器进行处理。比如读处理器会通过读取数据此时read()操作可以直接读取到数据而不会堵塞与等待可读的数据到来。 在目前的单线程Reactor模式中不仅I/O操作在该Reactor线程上连非I/O的业务操作也在该线程上进行处理了这可能会大大延迟I/O请求的响应。所以我们应该将非I/O的业务逻辑操作从Reactor线程上卸载以此来加速Reactor线程对I/O请求的响应。 6.Redis6.0为什么要引入多线程呢 从Redis自身角度来说因为读写网络的read/write系统调用占用了Redis执行期间大部分CPU时间瓶 颈主要在于网络的 IO 消耗多线程任务可以分摊 Redis 同步 IO 读写负荷。 7.Redis6.0多线程的实现机制 流程简述如下 1、主线程负责接收建立连接请求获取 socket 放入全局等待读处理队列 2、主线程处理完读事件之后通过 RR(Round Robin) 将这些连接分配给这些 IO 线程 3、主线程阻塞等待 IO 线程读取 socket 完毕 4、主线程通过单线程的方式执行请求命令请求数据读取并解析完成但并不执行回写 socket 5、主线程阻塞等待 IO 线程将数据回写 socket 完毕 6、解除绑定清空等待队列 该设计有如下特点 1、IO 线程要么同时在读 socket要么同时在写不会同时读或写 2、IO 线程只负责读写 socket 解析命令不负责命令处理 注意Redis的多线程不存在线程并发安全问题。Redis的多线程部分只是用来处理网络数据的读写和协议解析执行命令仍然是单线程顺序执行。所以我们不需要去考虑控制 key、lua、事务LPUSH/LPOP 等等的并发及线程安全问题。
http://www.zqtcl.cn/news/519546/

相关文章:

  • 织梦视频网站源码有没有专门做名片的网站
  • 济南本地网站自己做的网站怎么置顶
  • wordpress能做多大的站好用的网站后台
  • 想自己做网站流程国家住建网查企业资质
  • 英文网站怎么设计google浏览器入口
  • 重庆网站建设公司魁网个人备案网站名
  • 怀柔营销型网站建设wordpress菜单定制
  • 大连装修网站推广天津市建设信息工程网
  • 服装网站建设建议域名注册最好的网站
  • 小游戏网站网络营销推广岗位
  • 做一百度网站保健品网站建设案例
  • 沙田镇仿做网站如何建设钓鱼网站
  • 如何用域名进网站企业做电商网站有哪些
  • soho做网站网站的k线图怎么做
  • 成都专业的网站建设公司做网站需要哪个专业
  • php彩票网站建设源码有人看片吗免费观看
  • 自己做网站的准备工作营销平台推广
  • 建站网站平台建站工具的优点
  • 各学院二级网站建设通报wordpress 修改admin
  • 网站建设加推广需要多少钱wordpress标签自动生成插件下载
  • 周村区建设局网站石家庄网站运营公司
  • 网站描述怎么设置wordpress仿模板
  • 宁波市网站建设公司h5游戏是什么意思
  • 青岛网站设计案例全栈网站开发
  • 欢迎访问中国建设银行网站个人客户网站建设需要经历什么步骤
  • 建设银行怀柔支行营业部网站企业官网手机版
  • cms那个做网站最好大连网站开发平台
  • 佛山建设外贸网站公司可信网站图标
  • 沈阳.....网站设计连云港优化网站团队
  • 网站添加白名单想学ui设计从哪里入手