2013-04-09 77 views
3

我不能重新连接到我的Redis数据库执行以下操作:Booksleeve,错误时,抛出试图打开连接连接被关闭后,当

  • 创建一个新的RedisConnection称为“连接”
  • 打开连接connection.Open().Wait();
  • 关闭连接connection.Close(true);
  • 现在,当我试图connection.Open().Wait();抛出一个错误“连接已关闭”。

我知道连接已关闭,但为什么我无法重新打开它?

如果我不关闭连接,关闭Redis服务器,让客户端提升Closed事件,重新启动服务器,然后尝试再次使用connection.Open().Wait();打开连接,则会发生同样的情况。 “连接已关闭”错误被抛出。

我的方法有什么问题?我似乎无法使用Booksleeve正确管理连接状态。

感谢

回答

2

这不是预期的使用情况,您打开和关闭BookSleeve连接。

  • ,因为它是一个多路转换器,可以预期,它被打开一次,然后由多个呼叫者同时使用(它是线程安全等)
  • 开口涉及各种握手(在网络和协议水平)以确保正确的操作 - 这是最好的避免(它不是非常昂贵,注意)
  • 一旦关闭,没有进行中的状态是可行的;如果你真的想关闭它,只需使用全新的连接

就我个人而言,如果我在运行时重新配置系统或连接断开,我只会关闭它。

+0

准确地说,我想使用它,至少在连接断开时打开方法,但它不起作用。所以,我想我会实例化一个新的连接? – 2013-04-09 14:56:58

+0

@Freddy确实 - 只是“新”一个 – 2013-04-09 16:51:12

+4

@MarcGravell如果您可以提供弹性连接的实施方案,那将是非常好的。不需要成为图书馆的一部分。推荐在wiki或这里设置就足够了。 – Kugel 2013-08-15 12:34:23