Ini karena tidak ada flush otomatis stdout saat redis-cli menampilkan pesan yang terkait dengan langganan. Jadi pesan terakhir sebelum menghentikan redis-cli tidak muncul di file output.
Tidak ada opsi yang dapat Anda gunakan untuk menerapkan flush sistematis, redis-cli.c perlu ditambal. Dalam kode sumber Redis, edit src/redis-cli.c, dan temukan potongan kode berikut. Tambahkan baris fflush yang hilang.
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);
}
}
Setelah redis-cli dikompilasi lagi, itu akan berfungsi seperti yang diharapkan.