Je to proto, že nedochází k automatickému vyprázdnění stdout, když redis-cli zobrazí zprávy spojené s předplatným. Takže poslední zprávy před zastavením redis-cli se ve výstupním souboru nezobrazují.
Neexistuje žádná možnost, kterou byste mohli použít k vynucení systematického vyprázdnění, redis-cli.c je třeba opravit. Ve zdrojovém kódu Redis upravte src/redis-cli.c a najděte následující část kódu. Přidejte chybějící proplachovací řádek.
if (config.pubsub_mode) {
if (config.output != OUTPUT_RAW)
printf("Reading messages... (press Ctrl-C to quit)\n");
while (1) {
if (cliReadReply(output_raw) != REDIS_OK) exit(1);
// The following line must be added
fflush(stdout);
}
}
Jakmile bude redis-cli znovu zkompilováno, mělo by fungovat podle očekávání.