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.