自学内容网 自学内容网

Redis事件和整体框架

Redis服务器是事件驱动程序,主要处理两类:
文件事件
时间事件

文件事件

基于Reactor模式使用IO多路复用来监听多个套接字,并且根据套接字的事件分配相应的事件处理器。
IO多路事件都会放在一个队列中,并发时,有序执行。

时间事件

服务器将所有时间事件都放在一个无序链表。
当时间事件执行器运行时,会遍历整个链表,查找已经到达的时间事件,并且调用相应的事件处理器。

常见时间事件
  • 更新服务器状态
  • 关闭过期连接
  • AOF或者RDB
  • 集群同步
  • 测试从服务器连接
时间事件可能会晚一些执行

main(){
while{
文件事件
时间事件
}
}
创建时间事件会将其加入到链表中,但是只有当本次循环的文件事件执行完才会执行时间事件。
时间事件中有一个最重要的循环任务:serverCron默认每100ms运行一次,用来执行:

  • 更新服务器时钟
  • 更新服务器状态(LRU,执行命令次数等)
  • 管理和客户端的连接
  • AOF和RDB持久化

Redis是用客户端-服务器cs框架的

当服务器和客户端之间的socket因为客户端的写入而变得可读时,服务器将调用命令处理器来执行以下操作:
读取套接字,并且取出其中命令,放入缓冲区,调用相应的命令。


原文地址:https://blog.csdn.net/qq_35693377/article/details/140257999

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!