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 каждый раз, когда вам это нужно - он предназначен для использования в качестве общего, поточно-ориентированного мультиплексора - то есть, где-то содержится одно соединение и используется множеством несвязанных абонентов. Если, конечно, вам нужно сделать только одну вещь!

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