La normale API per abbonati dovrebbe funzionare correttamente:non ci sono presupposti sui casi d'uso e questo dovrebbe funzionare correttamente.
Tuttavia, sono d'accordo sul fatto che questa sia una funzionalità integrata che potrebbe forse trarre vantaggio dai metodi di supporto sull'API e forse da una diversa firma del delegato - per incapsulare la sintassi delle notifiche del keyapace in modo che le persone non debbano duplicarlo. Per questo:ti suggerisco di registrare un problema in modo che non venga dimenticato.
Semplice esempio di come iscriversi a un evento keyspace
Prima di tutto, è importante verificare che gli eventi dello spazio delle chiavi Redis siano abilitati. Ad esempio, gli eventi dovrebbero essere abilitati su chiavi di tipo Set . Questo può essere fatto usando CONFIG SET
comando:
CONFIG SET notify-keyspace-events KEs
Una volta che gli eventi keyspace sono abilitati, si tratta solo di iscriversi al canale pub-sub:
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
}
}
);
}
Ulteriori informazioni sugli eventi keyspace qui.