• Binbin's avatar
    Make redis-cli support PSYNC command (#11647) · 4ef4c4a6
    Binbin authored
    
    
    The current redis-cli does not support the real PSYNC command, the older
    version of redis-cli can support PSYNC is because that we actually issue
    the SYNC command instead of PSYNC, so it act like SYNC (always full-sync).
    Noted that in this case we will send the SYNC first (triggered by sendSync),
    then send the PSYNC (the one in redis-cli input).
    
    Didn't bother to find which version that the order changed, we send PSYNC
    first (the one in redis-cli input), and then send the SYNC (the one triggered
    by sendSync). So even full-sync is not working anymore, and it will result
    this output (mentioned in issue #11246):
    ```
    psync dummy 0
    Entering replica output mode...  (press Ctrl-C to quit)
    SYNC with master, discarding bytes of bulk transfer until EOF marker...
    Error reading RDB payload while SYNCing
    ```
    
    This PR adds PSYNC support to redis-cli, which can handle +FULLRESYNC and
    +CONTINUE responses, and some examples will follow.
    Co-authored-by: default avatarOran Agra <oran@redislabs.com>
    4ef4c4a6
redis-cli.c 343 KB