Redis 服务器及客户端流程

服务器流程

  1. 初始化全局

    • 创建一个RedisServer的结构,并且赋给默认值
    • 配置:端口,AOF选项,数据库个数,连接数等等
    • 基本数据结构,比如订阅发布的结构
    • 事件状态
    • 连接的客户端状态
    • Lua脚本运行环境
  2. 载入配置文件

    • 载入配置文件,主要是对上面全剧终的配置部分进行设定
  3. 创建daemon进程
    默认Redis是以后台线程启动的
  4. 初始化功能模块
    被初始化的主要功能模块:
    • 日志
    • 订阅发布
    • Lua脚本
    • 事件处理
    • 客户端处理
    • 完成这一步打印LOGO版本信息
  5. 载入数据
    用AOF或者RDB载入数据,这一步打印:DB loaded from disk
  6. 开始事件循环
    开始接受事件,完成这一步打印:The server is now ready to accept connections on port

客户端流程

为每个已连接的客户端维持一个RedisClient的结构主要包含如下信息:

  • 正在使用的数据库
  • 查询和回复缓存
  • 事务相关的数据结构
  • 阻塞相关的数据结构
  • 订阅发布相关的数据结构
  • 命令集指针
  • 统计选项

客户端执行一个命令的流程如下:

  • 通过Socket发送请求协议
  • Server通过读事件接受请求,且存入查询缓存
  • 从命令表找到相应的命令实现
  • 执行命令,且把执行结果存入到响应缓存中
  • 客户端写事件就绪的时候把相应缓存中的数据传回客户端
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值