sql >> Base de Datos >  >> NoSQL >> Redis

Notificaciones de espacio de teclas de Redis con StackExchange.Redis

La API de suscriptor regular debería funcionar bien; no hay suposiciones sobre los casos de uso, y esto debería funcionar bien.

Sin embargo, estoy un poco de acuerdo en que esta es una funcionalidad incorporada que tal vez podría beneficiarse de los métodos de ayuda en la API, y tal vez una firma de delegado diferente, para encapsular la sintaxis de las notificaciones del teclado para que las personas no necesiten duplicarla. Por eso:le sugiero que registre un problema para que no se olvide.

Ejemplo simple de cómo suscribirse a un evento keyspace

En primer lugar, es importante verificar que los eventos de espacio de teclas de Redis estén habilitados. Por ejemplo, los eventos deben habilitarse en teclas de tipo Establecer . Esto se puede hacer usando CONFIG SET comando:

CONFIG SET notify-keyspace-events KEs

Una vez que los eventos de espacio de teclas están habilitados, solo se trata de suscribirse al 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
            }
        }
    );
}

Obtén más información sobre los eventos de keyspace aquí.