Обикновеният API за абонати трябва да работи добре – няма предположения за случаите на употреба и това трябва да работи добре.
Донякъде обаче съм съгласен, че това е вградена функционалност, която може би би могла да се възползва от помощни методи на API и може би различен подпис на делегат - за капсулиране на синтаксиса на известията на keyapace, така че хората да не трябва да го дублират. За това:предлагам да регистрирате проблем, за да не бъде забравен.
Прост пример за това как да се абонирате за събитие на ключово пространство
Преди всичко е важно да проверите дали събитията в ключовото пространство на Redis са активирани. Например събитията трябва да бъдат активирани за ключове от тип Set . Това може да стане с помощта на CONFIG SET
команда:
CONFIG SET notify-keyspace-events KEs
След като събитията в ключовото пространство са активирани, става въпрос само за абониране за канала 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
}
}
);
}
Научете повече за събитията на ключовото пространство тук.