ऐसा इसलिए है क्योंकि जब रेडिस-क्ली सदस्यता से जुड़े संदेशों को प्रदर्शित करता है तो स्टडआउट का कोई स्वचालित फ्लश नहीं होता है। इसलिए रेडिस-क्ली को रोकने से पहले के अंतिम संदेश आउटपुट फाइल में दिखाई नहीं देते हैं।
कोई विकल्प नहीं है जिसका उपयोग आप व्यवस्थित फ्लश को लागू करने के लिए कर सकते हैं, redis-cli.c को पैच करने की आवश्यकता है। रेडिस स्रोत कोड में, src/redis-cli.c संपादित करें, और कोड का निम्न भाग खोजें। लापता fflush लाइन जोड़ें।
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);
}
}
एक बार रेडिस-क्ली को फिर से संकलित करने के बाद, इसे अपेक्षा के अनुरूप काम करना चाहिए।