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

网站建设与管理单招关键词优化是什么意思?

网站建设与管理单招,关键词优化是什么意思?,seo还有未来吗,百度网站公司信息推广怎么做的一、redis是单线程 Redis是单线程的#xff0c;但是为什么还那么快#xff1f;主要原因有下面3点原因#xff1a; 1. Redis是纯内存操作#xff0c;执行速度非常快。 2. 采用单线程#xff0c;避免不必要的上下文切换可竞争条件#xff0c;多线程还要考虑线程安全问题。 …一、redis是单线程 Redis是单线程的但是为什么还那么快主要原因有下面3点原因 1. Redis是纯内存操作执行速度非常快。 2. 采用单线程避免不必要的上下文切换可竞争条件多线程还要考虑线程安全问题。 3. 使用I/O多路复用模型非阻塞IO。 二、I/O多路复用 能解释一下I/O多路复用模型 Redis是纯内存操作执行速度非常快它的性能瓶颈是网络延迟而不是执行速度 I/O多路复用模型主要就是实现了高效的网络请求。要解释I/O多路复用模型需要从下面3个知识慢慢来 1. 用户空间和内核空间。 2. 常见的IO模型阻塞IOBlocking IO、非阻塞IONonblocking IO、IO多路复用IO Multiplexing。 3. Redis网络模型。 三、用户空间和内核空间 1.作用 Linux系统中一个进程使用的内存情况划分两部分内核空间、用户空间。 1. 用户空间只能执行受限的命令Ring3而且不能直接调用系统资源必须通过内核提供的接口来访问。 2. 内核空间可以执行特权命令Ring0调用一切系统资源。 Linux系统为了提高IO效率会在用户空间和内核空间都加入缓冲区 1. 写数据时要把用户缓冲数据拷贝到内核缓冲区然后写入设备。 2. 读数据时要从设备读取数据到内核缓冲区然后拷贝到用户缓冲区。 2.会出现什么问题呢 1. 当等待数据时会浪费大量系统资源。 2. 拷贝的过程比较繁琐。 3.如何解决 就是下面说到的IO模型。 四、常见的IO模型 1.阻塞IO模型 顾名思义阻塞IO就是两个阶段都必须阻塞等待 阶段一 1. 用户进程尝试读取数据比如网卡数据。 2. 此时数据尚未到达内核需要等待数据。 3. 此时用户进程也处于阻塞状态。 阶段二 1. 数据到达并拷贝到内核缓冲区代表已就绪。 2. 将内核数据拷贝到用户缓冲区 拷贝过程中用户进程依然阻塞等待。 3. 拷贝完成用户进程解除阻塞处理数据。 结论可以看到阻塞IO模型中用户进程在两个阶段都是阻塞状态。 2.非阻塞IO模型 顾名思义非阻塞IO的recvfrom操作会立即返回结果而不是阻塞用户进程。 阶段一 1. 用户进程尝试读取数据比如网卡数据。 2. 此时数据尚未到达内核需要等待数据。 3. 返回异常给用户进程。 4. 用户进程拿到error后再次尝试读取。 5. 循环往复直到数据就绪。 阶段二 1. 将内核数据拷贝到用户缓冲区。 2. 拷贝过程中用户进程依然阻塞等待。 3. 拷贝完成用户进程解除阻塞处理数据。 总结可以看到非阻塞IO模型中用户进程在第一个阶段是非阻塞第二个阶段是阻塞状态。虽然是非阻塞但性能并没有得到提高。而且忙等机制会导致CPU空转CPU使用率暴增。 3.IO多路复用 1基本原理 IO多路复用是利用单个线程来同时监听多个Socket 并在某个Socket可读、可写时得到通知从而避免无效的等待充分利用CPU资源。 阶段一 1. 用户进程调用select指定要监听的Socket集合。 2. 内核监听对应的多个socket。 3. 任意一个或多个socket数据就绪则返回readable。 4. 此过程中用户进程阻塞。 阶段二 1. 用户进程找到就绪的socket。 2. 依次调用recvfrom读取数据。 3. 内核将数据拷贝到用户空间。 4. 用户进程处理数据。 2其他通知方法 IO多路复用是利用单个线程来同时监听多个Socket 并在某个Socket可读、可写时得到通知从而避免无效的等待充分利用CPU资源。不过监听Socket的方式、通知的方式又有多种实现常见的有select、poll、epoll。 差异 1. select和poll只会通知用户进程有Socket就绪但不确定具体是哪个Socket 需要用户进程逐个遍历Socket来确认。 2. epoll则会在通知用户进程Socket就绪的同时把已就绪的Socket写入用户空间。 五、Redis网络模型 Redis通过IO多路复用来提高网络性能并且支持各种不同的多路复用实现并且将这些实现进行封装 提供了统一的高性能事件库。 核心就是IO多路复用事件派发。 六、面试时候的回答 面试官Redis是单线程的但是为什么还那么快 候选人这个有几个原因吧 1、完全基于内存的C语言编写。 2、采用单线程避免不必要的上下文切换可竞争条件。 3、使用多路I/O复用模型非阻塞IO。 例如bgsave 和 bgrewriteaof 都是在后台执行操作不影响主线程的正常使用不会产生阻塞 面试官能解释一下I/O多路复用模型 候选人I/O多路复用是指利用单个线程来同时监听多个Socket 并在某个Socket可读、可写时得到通知从而避免无效的等待充分利用CPU资源。目前的I/O多路复用都是采用的epoll模式实现它会在通知用户进程Socket就绪的同时把已就绪的Socket写入用户空间不需要挨个遍历Socket来判断是否就绪提升了性能。 其中Redis的网络模型就是使用I/O多路复用结合事件的处理器来应对多个Socket请求比如提供了连接应答处理器、命令回复处理器命令请求处理器 在Redis6.0之后为了提升更好的性能在命令回复处理器使用了多线程来处理回复事件在命令请求处理器中将命令的转换使用了多线程增加命令转换速度在命令执行的时候依然是单线程。
http://www.dnsts.com.cn/news/72616.html

相关文章:

  • 做网站第一步要干啥平面设计在线观看
  • 腾讯wordpress 建站推广比较好的平台
  • 手机屏幕网站网站流量高有什么用
  • 如何做网站主页建设部网站质量终身责任承诺书
  • 论坛网站建设价格大连网站建设价格低
  • 做商城网站的风险做网站有兼职吗
  • 湖北网站建设哪里有wordpress 免费主题
  • 专业定制网吧桌椅seo工具箱
  • 做美工要开通什么网站的会员呢赣州律师网站建设
  • 帮别人做彩票网站犯法嘛教育网站模块建设
  • 网站内容多 询盘网页设计网站哪个公司好
  • PS的网站东莞网站关键词
  • 权威的手机排行榜网站怎样手机做网站教程
  • 九号线香网站建设php 网站开发360
  • 百度网站如何建设微信公众号开发是否需要建立网站
  • 友谊路街道网站建设天眼查登录入口
  • 网站推广策划的思路包括哪些内容去哪个网站有客户找做标书的
  • 找人建设一个网站大概需要多少费用伊犁网站建设
  • 成都户外网站建设怎么建立一个网站?
  • 营销型企业网站wordpress一键生成
  • 网站内容授权书建设网站的行业现状
  • 桂林网站优化注意事项品牌视觉形象设计案例
  • 网站后台管理布局wordpress thesis 开发
  • 做现货黄金的金融网站济南最好的网站制作公司哪家好
  • 深圳品牌网站制作报价福州网站如何制作
  • 杭州电信网站备案wordpress怎么设置语言为中文
  • 菏泽网站制建设哪家好网站建设泽宇
  • 有哪些外贸网站深圳企业管理咨询公司
  • 国外好的室内设计网站分类信息网站建设计划
  • 记事本怎样做网站中信建设有限责任公司电话