Redis на Appharbor - исключение GetString на книжном рукаве
Я пытаюсь настроить Redis на appharbor. Я следовал их инструкциям и снова у меня возникла проблема с API на книжной обложке. Вот код, который я использую, чтобы заставить его работать изначально:
var connectionUri = new Uri(url);
using (var redis = new RedisConnection(connectionUri.Host, connectionUri.Port, password: connectionUri.UserInfo.Split(new[] { ':' }, 2)[1]))
{
redis.Strings.Set(1, "greeting", "welcome to remember your stuff!");
try
{
var task = redis.Strings.GetString(1, "greeting");
redis.Wait(task);
ViewBag.Message = task.Result;
}
catch (Exception)
{
// It throws an exception trying to wait for the task?
}
}
Однако проблема заключается в том, что он устанавливает строку правильно, но при попытке извлечь ту же строку из хранилища значений ключей выдает исключение тайм-аута, ожидающее выполнения задачи. Однако этот код работает на моем локальном соединении с сервером redis.
Я использую API неправильно? или это связано с Апфарбором?
Спасибо
1 ответ
Как SqlConnection
нужно позвонить Open()
(иначе ваши сообщения будут поставлены в очередь для доставки).
В отличие от SqlConnection
не стоит зажигать RedisConnection
каждый раз, когда вам это нужно - он предназначен для использования в качестве общего, поточно-ориентированного мультиплексора - то есть, где-то содержится одно соединение и используется множеством несвязанных абонентов. Если, конечно, вам нужно сделать только одну вещь!