sql >> Database >  >> NoSQL >> Redis

Redis keyspace-meldingen met StackExchange.Redis

De reguliere API voor abonnees zou goed moeten werken - er zijn geen aannames over gebruiksscenario's, en dit zou prima moeten werken.

Ik ben het er echter een beetje mee eens dat dit ingebouwde functionaliteit is die misschien baat zou kunnen hebben bij helpermethoden op de API, en misschien een andere handtekening van de gedelegeerde - om de syntaxis van de keyapace-meldingen in te kapselen, zodat mensen deze niet hoeven te dupliceren. Daarvoor:ik stel voor dat je een probleem registreert, zodat het niet wordt vergeten.

Eenvoudig voorbeeld van hoe u zich kunt abonneren op een keyspace-evenement

Allereerst is het belangrijk om te controleren of Redis keyspace-gebeurtenissen zijn ingeschakeld. Gebeurtenissen moeten bijvoorbeeld worden ingeschakeld op toetsen van het type Set . Dit kan gedaan worden met CONFIG SET commando:

CONFIG SET notify-keyspace-events KEs

Zodra keyspace-evenementen zijn ingeschakeld, hoeft u zich alleen maar te abonneren op het pub-sub-kanaal:

using (ConnectionMultiplexer connection = ConnectionMultiplexer.Connect("localhost"))
{
    IDatabase db = connection.GetDatabase();
    ISubscriber subscriber = connection.GetSubscriber();

    subscriber.Subscribe("[email protected]__:*", (channel, value) =>
        {
            if ((string)channel == "[email protected]__:users" && (string)value == "sadd")
            {
                // Do stuff if some item is added to a hypothethical "users" set in Redis
            }
        }
    );
}

Lees hier meer over keyspace-evenementen.



  1. NodeJs - Redis gebruiken, connect-redis met express

  2. MongoDB $isNumber

  3. Meerdere exemplaren van Redis uitvoeren op Centos

  4. Mongodb:kon geen verbinding maken met de server bij de eerste verbinding