ServiceStack.Redis разница между RedisClient и RedisPubSubServer

Я начал использовать ServiceStack.Redis и сначала я использовал RedisClient, но возникла проблема, заключающаяся в том, что при вызове Subscription.SubscribeToChannels поток зависает. Чтобы решить эту проблему, я начал использовать RedisPubSubServer, который позволяет контролировать подписку и поток не заморожен. У меня вопрос - почему в библиотеке два совершенно одинаковых класса, которые делают примерно одно и то же? В чем разница между RedisClient и RedisPubSubServer? Я прочитал документы, но неясно, почему они оба существуют.

//RedisClient example
var Client = new RedisClient(configuration["ConnectionStrings:Redis"]);
var Subscription = Client.CreateSubscription();
Subscription.OnMessage = (channel, msg) => "Received '{0}' from 
                                                  '{1}'".Print(msg, channel)
//blocking subscription
Subscription.SubscribeToChannels("channel-1");

//RedisPubSubServer example. Non blocking subscription.
var ClientsManager = new PooledRedisClientManager(configuration["ConnectionStrings:Redis"]);
var redisPubSub = new RedisPubSubServer(clientsManager, "channel-1") {
    OnMessage = (channel, msg) => "Received '{0}' from '{1}'".Print(msg, channel)
}.Start();

0 ответов

Другие вопросы по тегам