Den almindelige abonnent-API burde fungere fint - der er ingen antagelser om use-cases, og dette burde fungere fint.
Jeg er dog ret enig i, at dette er indbygget funktionalitet, der måske kunne drage fordel af hjælpemetoder på API'et, og måske en anden delegeret signatur - for at indkapsle syntaksen af keyapace-meddelelserne, så folk ikke behøver at duplikere det. Til det:Jeg foreslår, at du logger et problem, så det ikke bliver glemt.
Simpelt eksempel på, hvordan man abonnerer på en nøglerumsbegivenhed
Først og fremmest er det vigtigt at kontrollere, at Redis keyspace-begivenheder er aktiveret. For eksempel skal hændelser være aktiveret på nøgler af typen Set . Dette kan gøres ved at bruge CONFIG SET
kommando:
CONFIG SET notify-keyspace-events KEs
Når keyspace-begivenheder er aktiveret, er det bare om at abonnere på pub-sub-kanalen:
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
}
}
);
}
Få mere at vide om nøglerumsbegivenheder her.