sql >> Base de Datos >  >> NoSQL >> Redis

Cómo redirigir la salida de la suscripción redis

Esto se debe a que no hay un vaciado automático de stdout cuando redis-cli muestra los mensajes asociados a la suscripción. Entonces, los últimos mensajes antes de detener redis-cli no aparecen en el archivo de salida.

No hay ninguna opción que pueda usar para hacer cumplir un vaciado sistemático, redis-cli.c debe parchearse. En el código fuente de Redis, edite src/redis-cli.c y busque el siguiente fragmento de código. Agregue la línea fflush que falta.

    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);
        }
    }

Una vez que redis-cli se haya compilado nuevamente, debería funcionar como se esperaba.