rust tokio mini-redis
2020-05-04 14:46:17 20 举报
AI智能生成
rust 语言, tokio 框架实现的 redis 的 demo, 代码分析.
作者其他创作
大纲/内容
Server
server
服务器程序的入口
解析命令行参数
发起对本机端口的监听
Listener.run
接受连接
分发一个 spawn(handler.run) 给 tokio 来处理连接
处理连接
handler.run
读取客户端发送的内容,按frame解码
connection.read_frame
将frame解码成对应的cmd,然后执行
command.from_frame
监听程序关闭
Frame
监测是否收到了完整的命令
check
将命令组装成 Frame 数组
parse
Connection
read_frame
通过 redis 的协议监测客户端是否发送完完整的命令
check
接收到完整协议之后解析出对应的命令
调用 cmd 的 apply 方法, 执行对应的 cmd 的逻辑
write_frame
写入对应的结果给客户端
parse
从 Frame 数组中解析出 Cmd
Db
承担所有的数据操作
Cmd
Get
Publish
Set
Subscribe
Unsubscribe
Unknown
shutdown
Client
Cli
Others
tracing
一个用于多线程系统的日志组件,方便在多任务和多线程执行环境中日志上下文的追踪
核心概念
Spans
有开始和结束的标识, 包含着一段逻辑的执行, 代表着一个时间段
events
代表一个时间点,类似于普通日志里面的一行日志, 不同的是event只能在span内部发生
subscribers
监听者模式监听spans和events的事件
enabled
event
enter
exit
0 条评论
下一页
为你推荐
查看更多