Zwykły interfejs API subskrybenta powinien działać dobrze - nie ma żadnych założeń dotyczących przypadków użycia, a to powinno działać dobrze.
Jednak zgadzam się, że jest to wbudowana funkcjonalność, która może skorzystać z metod pomocniczych w interfejsie API i być może innego podpisu delegata - do enkapsulacji składni powiadomień o klawiszach tak, aby ludzie nie musieli jej duplikować. W tym celu:sugeruję zarejestrowanie problemu, aby nie został zapomniany.
Prosty przykład subskrybowania zdarzenia keyspace
Przede wszystkim ważne jest, aby sprawdzić, czy zdarzenia obszaru kluczy Redis są włączone. Na przykład zdarzenia powinny być włączone na klawiszach typu Set . Można to zrobić za pomocą CONFIG SET
polecenie:
CONFIG SET notify-keyspace-events KEs
Po włączeniu zdarzeń przestrzeni klawiszy wystarczy zasubskrybować kanał 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
}
}
);
}
Dowiedz się więcej o zdarzeniach związanych z przestrzenią klawiszy tutaj.