sql >> Database >  >> NoSQL >> Redis

Hoe de uitvoer van een redis-abonnement om te leiden?

Dit komt omdat stdout niet automatisch wordt gewist wanneer redis-cli de berichten weergeeft die aan het abonnement zijn gekoppeld. Dus de laatste berichten voordat redis-cli stopt, verschijnen niet in het uitvoerbestand.

Er is geen optie die u kunt gebruiken om een ​​systematische flush af te dwingen, redis-cli.c moet worden gepatcht. Bewerk in de Redis-broncode src/redis-cli.c en zoek het volgende stukje code. Voeg de ontbrekende spoelregel toe.

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

Zodra redis-cli opnieuw is gecompileerd, zou het moeten werken zoals verwacht.




  1. omgaan met redis max-geheugensituaties met rails bij gebruik van railcaching

  2. Node.js, (Hi)Redis en het multi-commando

  3. Een MongoDB-verzameling exporteren naar een CSV-bestand

  4. Databasestatuscontrole automatiseren