Redis
 sql >> Base de données >  >> NoSQL >> Redis

Comment rediriger la sortie de l'abonnement Redis

En effet, il n'y a pas de vidage automatique de stdout lorsque redis-cli affiche les messages associés à l'abonnement. Ainsi, les derniers messages avant l'arrêt de redis-cli n'apparaissent pas dans le fichier de sortie.

Il n'y a aucune option que vous pouvez utiliser pour appliquer un vidage systématique, redis-cli.c doit être corrigé. Dans le code source Redis, modifiez src/redis-cli.c et recherchez le morceau de code suivant. Ajoutez la ligne fflush manquante.

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

Une fois redis-cli compilé à nouveau, cela devrait fonctionner comme prévu.