2014-11-13 2 views
1

Я пытаюсь получить доступ к уведомлениям о ключах в приложении .NET с помощью ServiceStack.Redis. Я новичок в Redis.Как получить доступ к уведомлениям о ключах с помощью ServiceStack.redis

Я включил уведомления о событиях на кэш с помощью команды:

CONFIG SET notify-keyspace-events KEs 

Я подписываюсь на канал "ключ *: *" в .Net. Ниже приведен мой код:

const string ChannelName = "__key*__:*"; 
    using (var redisConsumer = new RedisClient("localhost:6379")) 
    using (var subscription = redisConsumer.CreateSubscription()) 
    { 
     subscription.OnSubscribe = channel => 
     { 
      Console.WriteLine(String.Format("Subscribed to '{0}'", channel)); 
     }; 
     subscription.OnUnSubscribe = channel => 
     { 
      Console.WriteLine(String.Format("UnSubscribed from '{0}'", channel)); 
     }; 
     subscription.OnMessage = (channel, msg) => 
     { 
      Console.WriteLine(String.Format("Received '{0}' from channel '{1}'", 
       msg, channel)); 
     };    

     Console.WriteLine(String.Format("Started Listening On '{0}'", ChannelName)); 
     subscription.SubscribeToChannels(ChannelName); //blocking 
    } 

Из другого приложения .Net, я добавляю новые данные в кэш. Я ожидаю получить событие (в OnMessage). Приложение не захватывает какое-либо событие при добавлении нового элемента в кеш.

Но, когда я запускаю команду «psubscribe» ключ *: * '' на redis-cli.exe, он правильно регистрирует события. (когда я добавляю новый элемент в кеш, он отображает информацию о событии в окне консоли.)

Я не могу зафиксировать то же самое в своем приложении. Я что-то пропустил?

ответ

1

subscription.SubscribeToChannelsMatching(ChannelName);

Смежные вопросы