收到一个客户端连接:
acceptCommonHandler
createClient
aeCreateFileEvent
readQueryFromClient
设置读取函数
readQueryFromClient函数处理流程:
processInputBufferAndReplicate
processInputBuffer
processCommand
lookupCommand
execCommand
call
genericHgetallCommand
以hkeys *命令为例子
b processInputBufferAndReplicate
b hkeysCommand
解析客户端传说的命令
(gdb) bt
#0 hkeysCommand (c=0x7ffff6d0d3c0) at t_hash.c:802
#1 0x000000000042e423 in call (c=0x7ffff6d0d3c0, flags=15) at server.c:2468
#2 0x0000000000431cad in processCommand (c=0x7ffff6d0d3c0) at server.c:2763
#3 0x000000000043ef2f in processInputBuffer (c=0x7ffff6d0d3c0) at networking.c:1466
#4 0x0000000000428e43 in aeProcessEvents (eventLoop=0x7ffff6c320a0, flags=11) at ae.c:443
#5 0x000000000042916b in aeMain (eventLoop=0x7ffff6c320a0) at ae.c:501
#6 0x00000000004313b5 in main (argc=<value optimized out>, argv=0x7fffffffe678) at server.c:4234
(gdb) p c->querybuf
$16 = (sds) 0x7fffee5e98c5 "*2\r\n$5\r\nhkeys\r\n$1\r\n*\r\n"