복붙노트

[REDIS] 레디 스 구독의 출력을 리디렉션하는 방법

REDIS

레디 스 구독의 출력을 리디렉션하는 방법

나는 술집 / 서브를 할 레디 스를 탐구하고있다. 내가 사용의 레디 스-CLI 파일로 게시 어떤 채널과 덤프에 가입하는 스크립트를 작성하고 싶었다. 내가 그러나 주목하는 것은 레디 스-CLI subscripe 채널> 출력이 잘 작동하지 않습니다 것입니다.

난 아주 많이 도움을 감사하겠습니다.

문안 인사, 쉬얍

해결법

  1. ==============================

    1.레디 스-CLI 표시 메시지는 가입에 관련된 표준 출력의 더 자동 플러시가 없기 때문이다. 정지 전에 마지막 메시지 그래서 레디 스를-CLI는 출력 파일에 나타나지 않습니다.

    레디 스-CLI 표시 메시지는 가입에 관련된 표준 출력의 더 자동 플러시가 없기 때문이다. 정지 전에 마지막 메시지 그래서 레디 스를-CLI는 출력 파일에 나타나지 않습니다.

    당신이 체계적으로 세척을 시행하는 데 사용할 수있는 옵션이 없습니다, 레디 스 - cli.c 요구를 패치 할 수 있습니다. 레디 스 소스 코드 편집 SRC에서 / - 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);
            }
        }
    

    레디 스-CLI가 다시 컴파일되면 예상대로 작동합니다.

  2. from https://stackoverflow.com/questions/17922809/how-to-redirect-the-output-of-redis-subscription by cc-by-sa and MIT license