我正在尝试在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有关吗?
由于
答案 0 :(得分:1)
与SqlConnection
类似,您需要拨打Open()
(否则您的邮件会排队等待投放)。
与 SqlConnection
不同,您应该不每次需要时激发RedisConnection
- 它是旨在用作共享的,线程安全的多路复用器 - 即单个连接被保存在某个地方并被许多不相关的呼叫者使用。除非你当然只需要做一件事!