redis(2)

redis的简单抽象模型:

  

文件事件处理器===>保证redis单线程
  多个socket ------->>>service socket 请求--->>
        ------->>>io多路复用程序
        ------->>>队列
        ------->>>文件处理分派器
        ------->>>各种事件处理器:
              1.事件请求处理器
              2.事件应答处理器
              3.事件回复处理器
6.0版本后,队列中的 i/o网络网络协议处理 抽取出来做成了多线程处理
 
 
redis 高性能的原因:
高性能:
  直接从redis中获取数据,减少与数据库交互,增加性能。
高并发:
转移部分数据到redis中,降低数据库的压力。
 
redis为什么快?
1.使用内存,数据结构类似于hashmap,操作的时间复杂度O(1)
2.redis的数据结构进行了专门的优化。
3.采用单线程,避免上下文切换和竞争条件,也不存在多进程或者多线程导致切换消耗cpu,并且不需要考虑各种锁。
4.使用多路复用的io模型,非阻塞io
5.redis自己构建了vm机制,因为调用系统函数,会浪费一定的时间去移动和请求。
posted @ 2022-08-19 22:39  a菜搬砖  阅读(19)  评论(0)    收藏  举报