Běžné API pro předplatitele by mělo fungovat dobře – neexistuje žádný předpoklad o případech použití a toto by mělo fungovat dobře.
Nicméně souhlasím s tím, že toto je vestavěná funkce, která by možná mohla těžit z pomocných metod na API a možná i jiného podpisu delegáta – k zapouzdření syntaxe oznámení keyapace, aby je lidé nemuseli duplikovat. Za to:Navrhuji, abyste problém zaprotokolovali, aby se na něj nezapomnělo.
Jednoduchá ukázka, jak se přihlásit k odběru události keyspace
Nejprve je důležité zkontrolovat, zda jsou povoleny události klíčového prostoru Redis. Události by měly být například povoleny pro klíče typu Set . To lze provést pomocí CONFIG SET
příkaz:
CONFIG SET notify-keyspace-events KEs
Jakmile jsou události klíčového prostoru povoleny, je to jen o přihlášení k odběru kanálu 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
}
}
);
}
Další informace o událostech keyspace zde.