1

我正在尝试在 appharbor 上设置 Redis。我已按照他们的说明进行操作,但 Booksleeve 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?还是这与 Appharbor 有关?

谢谢

4

1 回答 1

1

像 a 一样SqlConnection,您需要调用Open()(否则您的消息将排队等待传递)。

与 不同 SqlConnection的是,您不应该每次需要时启动 aRedisConnection- 它旨在用作共享的、线程安全的多路复用器 - 即单个连接被保存在某处并被大量不相关的调用者使用。除非你当然只需要做一件事!

于 2012-04-27T07:23:04.047 回答