目前做响应式网站最好的cms,怎样做网站后台运营,俄罗斯网站推广,个人网站需不需要备案前言#xff1a; 效率高、速度快是相较于数据库来说的#xff08;MySQL、Orcale、SQL server#xff09; 文章目录 一、单线程模式的工作流程二、为什么快#xff1f; 一、单线程模式的工作流程
这里我们所说的单线程是指#xff1a;Redis只使用一个线程#xff0c;来处… 前言 效率高、速度快是相较于数据库来说的MySQL、Orcale、SQL server 文章目录 一、单线程模式的工作流程二、为什么快 一、单线程模式的工作流程
这里我们所说的单线程是指Redis只使用一个线程来处理所有的命令请求。而并不是说Redis服务器进程内部就真的只有一个进程。Redis内部其实也有多个线程但那多个线程是在处理 网络IO 当前这样两个客户端相当于“并发”的发起了上述请求但Redis服务器实际上是单线程模型保证了当前受到的请求是串行执行的。 那么为什么Redis使用单线程模型处理业务还是这么快 这主要取决于Reids的核心业务逻辑Redis的核心业务逻辑都是短平快不太消耗CPU资源也就不太依靠核心数。 弊端 使用Redis必须小心避免某个操作占用时间长就会阻塞其他命令的执行。
二、为什么快 效率高、速度快是相较于数据库来说的MySQL、Orcale、SQL server Redis访问内存数据库则是访问硬盘。 这两个的速度可能会差上几个数量级。Redis的核心功能更简单。 数据库对于数据的插入删除查询都有更复杂的功能。例如针对插入删除数据库中的各种约束都会使数据库做额外的工作这样的功能势必会造成更多的开销 当然消耗多就达标干的活多这也就是为什么MySQL支持的功能要比Redis多。Redis是单线程模型避免了一些不必要的线程竞争开销 Redis的每个基本操作都是短平快只是简单操作一下内存数据不会产生大的内存CPU开销即使多个线程那提升也不大。处理网络IO时使用了epoll这样的IO多路复用机制。 一个线程可以管理一个socket针对TCP来说服务器这每服务一个客户端就需要为这个客户端安排一个socket。那么一个服务器服务多个客户端同时就有很多socket。但这些socket并不是无时无刻都在传输数据。大多数socket大多数时间都在静默。 那么为一个socket分配一个线程就显得有些浪费了。 基于上述原因就出现了IO多路复用–即一个线程管理多个socket 以上就是本文所有内容如果对你有帮助的话点赞收藏支持一下吧