redis网络IO模型

单线程

Redis 是单线程,主要是指 Redis 的网络 IO 和键值对读写是由一个线程来完成的。持久化、异步删除、集群数据同步等,其实是由额外的线程执行的。

避免了多线程编程模式面临的共享资源的并发访问控制问题。

多路复用机制

一个线程处理多个 IO 流(select/epoll):在 Redis 只运行单线程的情况下,该机制允许内核中,同时存在多个监听套接字和已连接套接字。内核会一直监听这些套接字上的连接请求或数据请求。一旦有请求到达,就会交给 Redis 线程处理,这就实现了一个 Redis 线程处理多个 IO 流的效果。

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


   转载规则


《redis网络IO模型》 wangyixin-tom 采用 知识共享署名 4.0 国际许可协议 进行许可。
 上一篇
redis AOF机制 redis AOF机制
先写内存,在写日志。1、命令执行成功才会被记录日志。2、避免对当前命令的阻塞。 风险1、突然宕机,Redis用作数据库的话,命令可能没有记入日志,所以就无法用日志进行恢复了。2、AOF 虽然避免了对当前命令的阻塞,但可能会给下一个操作带来阻
2020-10-26
下一篇 
redis数据结构 redis数据结构
基本数据结构包括:String(字符串)、List(列表)、Hash(哈希)、Set(集合)和 Sorted Set(有序集合) 基本数据结构 底层实现 string 动态字符串 List 双向链表、压缩列表 Hash
2020-10-26
  目录