Redis
 sql >> Database >  >> NoSQL >> Redis

Notifiche dello spazio delle chiavi Redis con StackExchange.Redis

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.