Question: in redis.conf , client-output-buffer-limit vs repl-backlog-size ?

redis master allocate replication buffer for each slave , i can set client-output-buffer-limit 500M . repl-buff notes master commands and runid'offset.

i don't know backlog effect in redis master role . backlog notes globals offset, each slave running , each different task time cost ? 

when a slave note send psync command with runid\last offset to master , master get data from backlog or rel-buffer ?

Answer: 
Replication buffer keeps the new updates to the master, till the RDB snapshot of master is transferred to the slave and is loaded into its memory. After this the data in the replication buffer is transferred to the slave. Client-output-buffer-limit is the max size we allow a replication buffer to grow. 

Backlog stores the data after the moment a slave disconnected. So when the slave reconnects, we don't need to do full synchronization again.

So the answer to your question is replication buffer.
The `client-output-buffer-limit` is used to force disconnection of slow clients.

The `repl-backlog-size` is memory used to keep track of recent changes. This buffer is used by slaves to catch up fast after a reconnect instead of transferring the whole database.

See <http://download.redis.io/redis-stable/redis.conf>