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.