美文网首页
redis为啥这么快

redis为啥这么快

作者: 中2庸 | 来源:发表于2021-12-27 18:18 被阅读0次

redis为啥这么快

  • 基于内存
  • 底层使用了优秀的数结构如哈希表、跳表
  • io多路复用,使用epoll模式

redis异步模式

  以 Get 请求为例,SimpleKV 为了处理一个 Get 请求,需要监听客户端请求(bind/listen),和客户端建立连接(accept),从 socket 中读取请求(recv),解析客户端发送请求(parse),根据请求类型读取键值数据(get),最后给客户端返回结果,即向 socket 中写回数据(send)。下图显示了这一过程,其中,bind/listen、accept、recv、parse 和 send 属于网络 IO 处理,而 get 属于键值数据操作。既然 Redis 是单线程,那么,最基本的一种实现是在一个线程中依次执行上面说的这些操作。


image.png
  • 基于多路复用的高性能 I/O 模型
      Linux 中的 IO 多路复用机制是指一个线程处理多个 IO 流,就是我们经常听到的 select/epoll 机制。简单来说,在 Redis 只运行单线程的情况下,该机制允许内核中,同时存在多个监听套接字和已连接套接字。内核会一直监听这些套接字上的连接请求或数据请求。一旦有请求到达,就会交给 Redis 线程处理,这就实现了一个 Redis 线程处理多个 IO 流的效果。下图就是基于多路复用的 Redis IO 模型。图中的多个 FD 就是刚才所说的多个套接字。Redis 网络框架调用 epoll 机制,让内核监听这些套接字。此时,Redis 线程不会阻塞在某一个特定的监听或已连接套接字上,也就是说,不会阻塞在某一个特定的客户端请求处理上。正因为此,Redis 可以同时和多个客户端连接并处理请求,从而提升并发性:


    image.png

    为了在请求到达时能通知到 Redis 线程,select/epoll 提供了基于事件的回调机制,即针对不同事件的发生,调用相应的处理函数.

相关文章

  • redis 为啥这么快

    天下武功,唯快不破。redis 为什么那么快?redis 单进程并发 10w+ (hiredis + libev ...

  • redis为啥这么快

    redis为啥这么快 基于内存 底层使用了优秀的数结构如哈希表、跳表 io多路复用,使用epoll模式 redis...

  • redis为啥这么快?

    提到当前主流的 NoSql,那一定非 Redis 莫属。因为它读写速度极快,应用广泛,以至于,面试如果不提一下re...

  • 到底redis 为啥快

    1、完全基于内存,绝大部分请求是纯粹的内存操作,非常快速。数据存在内存中,类似于HashMap,HashMap的优...

  • Elasticsearch为啥这么快

    思考几个问题: 为什么搜索是 近实时 的? 为什么文档的 CRUD (创建-读取-更新-删除) 操作是 实时 的?...

  • redis的底层原理

    redis 为什么这么快 redis的速度 redis的qps可以达到10万左右(每秒请求数) redis 为什么...

  • Redis服务器模型

    QA 问:redis为啥快?答:因为都是内存操作,不过因为是单线程,所以要小心可能卡顿的指令。再问:redis单线...

  • 为啥老张做饭这么快?

    今天儿子不上晚自习,早上就点菜要吃羊肉饺子。本来我今天上半天班,下午有时间悠闲地干活,但同事有事情需要我替她班,所...

  • 京东二面,Redis为什么这么快?

    面试开始面试官: 今天聊聊Redis吧面试官 : 都说Redis速度快,那Redis为什么这么快呢?大彬 :主要是...

  • Redis为什么这么快

    Redis简介 Redis是一个开源的内存中的数据结构存储系统,它可以用作:数据库、缓存和消息中间件。它支持多种类...

网友评论

      本文标题:redis为啥这么快

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