美文网首页
redis Redis的线程模型

redis Redis的线程模型

作者: dylan丶QAQ | 来源:发表于2020-09-14 13:38 被阅读0次

起因:随着项目的进一步推广,数据量的增大,直接访问mysql数据库获取数据所使用的时间越来越长,为解决当前主要矛盾,决定引入redis非关系型数据库作为缓存层,使得数据并不能直接命中数据库,减少访问数据库带来的压力,从而加快运行速度。


Redis的线程模型

Redis是一个单进程的应用

redis线程模型

每一条到达服务端的命令都不会立即执行,所有命令都会进入一个队列中,所以Redis不会产生并发问题

为什么Redis是单线程模型效率还这么高?

  1. 纯内存访问:数据放在内存中,内存的响应时间100纳秒
  2. 非阻塞I/O:Redis采用epoll作为I/O多路复用技术的实现,再加上Redis自身的事件处理模型将epoll中的连接、读写、关闭都转换为了事件,不在I/O上浪费过多时间
  3. 采用单线程,避免了不必要的上下文切换和竞争条件

由于模型的本身机制,因此尽量不要和redis交互大数量的内容

什么是多路复用?
假如你是一个老师,让30个学生回答问题,如何在学生昨晚后检查是否正确?

  1. 第一种:A,B,C,D按顺序轮询
  2. 第二种:老师身上有查克拉会分身,分了30分身去处理
  3. 第三种:你在讲台上问谁回来完毕,谁举手去回答谁,这就是I/O复用模型了

不要以为每天把功能完成了就行了,这种思想是要不得的,互勉~!

相关文章

网友评论

      本文标题:redis Redis的线程模型

      本文链接:https://www.haomeiwen.com/subject/xjcjektx.html