redis的pipeline

redis的pipeline看文档看的比较迷惑,到底是客户端多次发送命令到redis,由redis把命令暂存起来,一次性返回结果,还是客户端把命令暂存起来,然后一次性发送给redis,感觉后面这种方式比较合理,但是文档上的描述又让我觉得是前者那种方式,于是,写了段代码,抓包看了下。
代码:

        $redis->multi(\Redis::PIPELINE);
        for ($i = 0; $i < 10; $i++) {
            $redis->hget("aaa", 'interaction');
            sleep(1);//为了明显区分每个请求的数据包
        }
        $redis->exec();

抓包:sudo tcpdump -X tcp port 1342

tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
14:14:59.600178 IP liangqi1.abacus.dhrest.com.53906 > 10.142.119.32.esbroker: Flags [S], seq 4219721689, win 14100, options [mss 1410,sackOK,TS val 966372413 ecr 0,nop,wscale 7], length 0
    0x0000:  4500 003c 7be4 4000 4006 ad95 0a10 8584  E..<{.@.@.......
    0x0010:  0a8e 7720 d292 053e fb83 d7d9 0000 0000  ..w....>........
    0x0020:  a002 3714 6ed6 0000 0204 0582 0402 080a  ..7.n...........
    0x0030:  3999 ac3d 0000 0000 0103 0307            9..=........
14:14:59.601258 IP 10.142.119.32.esbroker > liangqi1.abacus.dhrest.com.53906: Flags [S.], seq 2677444732, ack 4219721690, win 14480, options [mss 1460,sackOK,TS val 3548553021 ecr 966372413,nop,wscale 7], length 0
    0x0000:  4500 003c 0000 4000 3a06 2f7a 0a8e 7720  E..<..@.:./z..w.
    0x0010:  0a10 8584 053e d292 9f96 907c fb83 d7da  .....>.....|....
    0x0020:  a012 3890 ca43 0000 0204 05b4 0402 080a  ..8..C..........
    0x0030:  d382 9f3d 3999 ac3d 0103 0307            ...=9..=....
14:14:59.601279 IP liangqi1.abacus.dhrest.com.53906 > 10.142.119.32.esbroker: Flags [.], ack 1, win 111, options [nop,nop,TS val 966372413 ecr 3548553021], length 0
    0x0000:  4500 0034 7be5 4000 4006 ad9c 0a10 8584  E..4{.@.@.......
    0x0010:  0a8e 7720 d292 053e fb83 d7da 9f96 907d  ..w....>.......}
    0x0020:  8010 006f 3131 0000 0101 080a 3999 ac3d  ...o11......9..=
    0x0030:  d382 9f3d                                ...=
14:14:59.601686 IP liangqi1.abacus.dhrest.com.53906 > 10.142.119.32.esbroker: Flags [P.], seq 1:38, ack 1, win 111, options [nop,nop,TS val 966372414 ecr 3548553021], length 37
    0x0000:  4500 0059 7be6 4000 4006 ad76 0a10 8584  E..Y{.@.@..v....
    0x0010:  0a8e 7720 d292 053e fb83 d7da 9f96 907d  ..w....>.......}
    0x0020:  8018 006f 118e 0000 0101 080a 3999 ac3e  ...o........9..>
    0x0030:  d382 9f3d 2a32 0d0a 2434 0d0a 4155 5448  ...=*2..$4..AUTH
    0x0040:  0d0a 2431 360d 0a37 3332 6563 3831 3337  ..$16..732ec8137
    0x0050:  3734 3063 3838 610d 0a                   740c88a..
14:14:59.602695 IP 10.142.119.32.esbroker > liangqi1.abacus.dhrest.com.53906: Flags [.], ack 38, win 114, options [nop,nop,TS val 3548553022 ecr 966372414], length 0
    0x0000:  4500 0034 0f43 4000 3a06 203f 0a8e 7720  E..4.C@.:..?..w.
    0x0010:  0a10 8584 053e d292 9f96 907d fb83 d7ff  .....>.....}....
    0x0020:  8010 0072 3107 0000 0101 080a d382 9f3e  ...r1..........>
    0x0030:  3999 ac3e                                9..>
14:14:59.602708 IP 10.142.119.32.esbroker > liangqi1.abacus.dhrest.com.53906: Flags [P.], seq 1:6, ack 38, win 114, options [nop,nop,TS val 3548553022 ecr 966372414], length 5
    0x0000:  4500 0039 0f44 4000 3a06 2039 0a8e 7720  E..9.D@.:..9..w.
    0x0010:  0a10 8584 053e d292 9f96 907d fb83 d7ff  .....>.....}....
    0x0020:  8018 0072 b09d 0000 0101 080a d382 9f3e  ...r...........>
    0x0030:  3999 ac3e 2b4f 4b0d 0a                   9..>+OK..
14:14:59.602713 IP liangqi1.abacus.dhrest.com.53906 > 10.142.119.32.esbroker: Flags [.], ack 6, win 111, options [nop,nop,TS val 966372415 ecr 3548553022], length 0
    0x0000:  4500 0034 7be7 4000 4006 ad9a 0a10 8584  E..4{.@.@.......
    0x0010:  0a8e 7720 d292 053e fb83 d7ff 9f96 9082  ..w....>........
    0x0020:  8010 006f 3104 0000 0101 080a 3999 ac3f  ...o1.......9..?
    0x0030:  d382 9f3e                                ...>
14:15:09.605762 IP liangqi1.abacus.dhrest.com.53906 > 10.142.119.32.esbroker: Flags [P.], seq 38:448, ack 6, win 111, options [nop,nop,TS val 966382418 ecr 3548553022], length 410
    0x0000:  4500 01ce 7be8 4000 4006 abff 0a10 8584  E...{.@.@.......
    0x0010:  0a8e 7720 d292 053e fb83 d7ff 9f96 9082  ..w....>........
    0x0020:  8018 006f 1303 0000 0101 080a 3999 d352  ...o........9..R
    0x0030:  d382 9f3e 2a33 0d0a 2434 0d0a 4847 4554  ...>*3..$4..HGET
    0x0040:  0d0a 2433 0d0a 6161 610d 0a24 3131 0d0a  ..$3..aaa..$11..
    0x0050:  696e 7465 7261 6374 696f 6e0d 0a2a 330d  interaction..*3.
    0x0060:  0a24 340d 0a48 4745 540d 0a24 330d 0a61  .$4..HGET..$3..a
    0x0070:  6161 0d0a 2431 310d 0a69 6e74 6572 6163  aa..$11..interac
    0x0080:  7469 6f6e 0d0a 2a33 0d0a 2434 0d0a 4847  tion..*3..$4..HG
    0x0090:  4554 0d0a 2433 0d0a 6161 610d 0a24 3131  ET..$3..aaa..$11
    0x00a0:  0d0a 696e 7465 7261 6374 696f 6e0d 0a2a  ..interaction..*
    0x00b0:  330d 0a24 340d 0a48 4745 540d 0a24 330d  3..$4..HGET..$3.
    0x00c0:  0a61 6161 0d0a 2431 310d 0a69 6e74 6572  .aaa..$11..inter
    0x00d0:  6163 7469 6f6e 0d0a 2a33 0d0a 2434 0d0a  action..*3..$4..
    0x00e0:  4847 4554 0d0a 2433 0d0a 6161 610d 0a24  HGET..$3..aaa..$
    0x00f0:  3131 0d0a 696e 7465 7261 6374 696f 6e0d  11..interaction.
    0x0100:  0a2a 330d 0a24 340d 0a48 4745 540d 0a24  .*3..$4..HGET..$
    0x0110:  330d 0a61 6161 0d0a 2431 310d 0a69 6e74  3..aaa..$11..int
    0x0120:  6572 6163 7469 6f6e 0d0a 2a33 0d0a 2434  eraction..*3..$4
    0x0130:  0d0a 4847 4554 0d0a 2433 0d0a 6161 610d  ..HGET..$3..aaa.
    0x0140:  0a24 3131 0d0a 696e 7465 7261 6374 696f  .$11..interactio
    0x0150:  6e0d 0a2a 330d 0a24 340d 0a48 4745 540d  n..*3..$4..HGET.
    0x0160:  0a24 330d 0a61 6161 0d0a 2431 310d 0a69  .$3..aaa..$11..i
    0x0170:  6e74 6572 6163 7469 6f6e 0d0a 2a33 0d0a  nteraction..*3..
    0x0180:  2434 0d0a 4847 4554 0d0a 2433 0d0a 6161  $4..HGET..$3..aa
    0x0190:  610d 0a24 3131 0d0a 696e 7465 7261 6374  a..$11..interact
    0x01a0:  696f 6e0d 0a2a 330d 0a24 340d 0a48 4745  ion..*3..$4..HGE
    0x01b0:  540d 0a24 330d 0a61 6161 0d0a 2431 310d  T..$3..aaa..$11.
    0x01c0:  0a69 6e74 6572 6163 7469 6f6e 0d0a       .interaction..
14:15:09.606899 IP 10.142.119.32.esbroker > liangqi1.abacus.dhrest.com.53906: Flags [P.], seq 6:56, ack 448, win 122, options [nop,nop,TS val 3548563027 ecr 966382418], length 50
    0x0000:  4500 0066 0f45 4000 3a06 200b 0a8e 7720  E..f.E@.:.....w.
    0x0010:  0a10 8584 053e d292 9f96 9082 fb83 d999  .....>..........
    0x0020:  8018 007a e0fc 0000 0101 080a d382 c653  ...z...........S
    0x0030:  3999 d352 242d 310d 0a24 2d31 0d0a 242d  9..R$-1..$-1..$-
    0x0040:  310d 0a24 2d31 0d0a 242d 310d 0a24 2d31  1..$-1..$-1..$-1
    0x0050:  0d0a 242d 310d 0a24 2d31 0d0a 242d 310d  ..$-1..$-1..$-1.
    0x0060:  0a24 2d31 0d0a                           .$-1..
14:15:09.606907 IP liangqi1.abacus.dhrest.com.53906 > 10.142.119.32.esbroker: Flags [.], ack 56, win 111, options [nop,nop,TS val 966382420 ecr 3548563027], length 0
    0x0000:  4500 0034 7be9 4000 4006 ad98 0a10 8584  E..4{.@.@.......
    0x0010:  0a8e 7720 d292 053e fb83 d999 9f96 90b4  ..w....>........
    0x0020:  8010 006f e10d 0000 0101 080a 3999 d354  ...o........9..T
    0x0030:  d382 c653                                ...S
14:15:09.607239 IP liangqi1.abacus.dhrest.com.53906 > 10.142.119.32.esbroker: Flags [F.], seq 448, ack 56, win 111, options [nop,nop,TS val 966382420 ecr 3548563027], length 0
    0x0000:  4500 0034 7bea 4000 4006 ad97 0a10 8584  E..4{.@.@.......
    0x0010:  0a8e 7720 d292 053e fb83 d999 9f96 90b4  ..w....>........
    0x0020:  8011 006f e10c 0000 0101 080a 3999 d354  ...o........9..T
    0x0030:  d382 c653                                ...S
14:15:09.608302 IP 10.142.119.32.esbroker > liangqi1.abacus.dhrest.com.53906: Flags [F.], seq 56, ack 449, win 122, options [nop,nop,TS val 3548563028 ecr 966382420], length 0
    0x0000:  4500 0034 0f46 4000 3a06 203c 0a8e 7720  E..4.F@.:..<..w.
    0x0010:  0a10 8584 053e d292 9f96 90b4 fb83 d99a  .....>..........
    0x0020:  8011 007a e0ff 0000 0101 080a d382 c654  ...z...........T
    0x0030:  3999 d354                                9..T
14:15:09.608312 IP liangqi1.abacus.dhrest.com.53906 > 10.142.119.32.esbroker: Flags [.], ack 57, win 111, options [nop,nop,TS val 966382421 ecr 3548563028], length 0
    0x0000:  4500 0034 7beb 4000 4006 ad96 0a10 8584  E..4{.@.@.......
    0x0010:  0a8e 7720 d292 053e fb83 d99a 9f96 90b5  ..w....>........
    0x0020:  8010 006f e109 0000 0101 080a 3999 d355  ...o........9..U
    0x0030:  d382 c654                                ...T
^C
13 packets captured
13 packets received by filter
0 packets dropped by kernel

虽然是16进制的,但是还是能看出来客户端并没有一个hget命令就发送一次命令,而是在客户端建立连接10秒后在exec的时候在第8个包里面一次性发送给redis的。而且没有multi和exec命令

转载请注明:小Y » redis的pipeline

赞 (0) 评论 (0) 分享 ()

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址