老师你好

来源:13-12 实现STRING命令集(二)

慕瓜9063200

2022-07-30

关于内存数据库不太明白的地方就是指令传递的过程,一个set指令,传递过程大概是:

  1. resphandler解析后得到set key val,发送给database执行。
  2. database选择DB后,再把指令发送给这个DB。
  3. DB从cmdTable中获取该指令对应的执行函数,set指令执行函数就是execSet()。
  4. 获取执行函数后便执行该执行函数,指令传到执行函数后就只剩下key val了,执行函数中调用DB的PutEntity(),再由DB调用它底层的dict字典去对Map做真正的set操作。
    所以这个cmdTable就是充当一个switch的作用,让DB知道这个是哪一类指令对吗?
写回答

1回答

Moody

2022-07-30

对的,本质上就是分配
1
0

深入Go底层原理,重写Redis中间件实战

深入Go语言原理+Go重写Redis

474 学习 · 172 问题

查看课程