Redis
 sql >> Base de données >  >> NoSQL >> Redis

Notifications d'espace de clés Redis avec StackExchange.Redis

L'API d'abonné standard devrait fonctionner correctement - il n'y a aucune hypothèse sur les cas d'utilisation, et cela devrait fonctionner correctement.

Cependant, je suis un peu d'accord sur le fait qu'il s'agit d'une fonctionnalité intégrée qui pourrait peut-être bénéficier de méthodes d'assistance sur l'API, et peut-être d'une signature de délégué différente - pour encapsuler la syntaxe des notifications keyapace afin que les utilisateurs n'aient pas besoin de la dupliquer. Pour cela :je vous suggère de consigner un problème afin qu'il ne soit pas oublié.

Exemple simple de la façon de s'abonner à un événement keyspace

Tout d'abord, il est important de vérifier que les événements d'espace de clés Redis sont activés. Par exemple, les événements doivent être activés sur les clés de type Set . Cela peut être fait en utilisant CONFIG SET commande :

CONFIG SET notify-keyspace-events KEs

Une fois les événements keyspace activés, il suffit de s'abonner au canal 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
            }
        }
    );
}

En savoir plus sur les événements keyspace ici.