I got.
You mean I have misunderstood the partial resynchronization condition ?
The condition includes two factors “the same run id of master and the
offset is available in the replication backlog “ .by the quoted below from
redis documentation:
"Starting with Redis 2.8, master and slave are usually able to continue
the replication process without requiring a full resynchronization after
the replication link went down.This works by creating an in-memory backlog
of the replication stream on the master side. The master and all the
slaves agree on a replication offset and a master run id, so when the link
goes down, the slave will reconnect and ask the master to continue the
replication. Assuming the master run id is still the same, and that the
offset specified is available in the replication backlog, replication will
resume from the point where it left off. If either of these conditions are
unmet, a full resynchronization is performed (which is the normal pre-2.8
behavior). As the run id of the connected master is not persisted to disk,
a full resynchronization is needed when the slave restarts.
The new partial resynchronization feature uses the PSYNC command
internally, while the old implementation uses the SYNC
<
http://redis.io/commands/sync> command. Note that a Redis 2.8 slave is
able to detect if the server it is talking with does not support PSYNC,
and will use SYNC <
http://redis.io/commands/sync> instead.
”
So ,beside these two condition ,the slave need to be “alive“ ? What
"replication link went down” doesn’t mean the slave process is killed ?