Redis
 sql >> Base de Dados >  >> NoSQL >> Redis

Como redirecionar a saída da assinatura redis


Isso ocorre porque não há liberação automática de stdout quando redis-cli exibe as mensagens associadas à assinatura. Portanto, as últimas mensagens antes de parar o redis-cli não aparecem no arquivo de saída.

Não há opção que você possa usar para impor uma limpeza sistemática, redis-cli.c precisa ser corrigido. No código-fonte do Redis, edite src/redis-cli.c e localize o seguinte trecho de código. Adicione a linha fflush ausente.
    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);
        }
    }

Depois que o redis-cli for compilado novamente, ele deverá funcionar conforme o esperado.