sql >> Databasteknik >  >> NoSQL >> Redis

Redis tangentutrymmesaviseringar med StackExchange.Redis

Det vanliga abonnent-API:et borde fungera bra - det finns inga antaganden om användningsfall, och detta borde fungera bra.

Jag håller dock med om att detta är inbyggd funktionalitet som kanske skulle kunna dra nytta av hjälpmetoder på API:t, och kanske en annan delegatsignatur - för att kapsla in syntaxen för keyapace-aviseringarna så att folk inte behöver duplicera den. För det:Jag föreslår att du loggar ett problem så att det inte glöms bort.

Ett enkelt exempel på hur man prenumererar på en nyckelrymdshändelse

Först och främst är det viktigt att kontrollera att Redis keyspace-händelser är aktiverade. Till exempel bör händelser vara aktiverade på nycklar av typen Set . Detta kan göras med CONFIG SET kommando:

CONFIG SET notify-keyspace-events KEs

När keyspace-händelser är aktiverade är det bara att prenumerera 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
            }
        }
    );
}

Läs mer om keyspace-händelser här.



  1. Ta bort ett fält från alla element i array i mongodb

  2. Det bästa mönstret för att hantera asynkron looping i Node.js

  3. Hur associerar man egenskaper till socket.io-objekt i Redis Store?

  4. Vad är HBase Compactions?