Booksleeve,在连接关闭后尝试打开连接时抛出错误

时间:2013-04-09 07:13:23

标签: c# redis booksleeve

我无法重新连接到我的Redis DB,执行以下操作:

  • 创建一个名为“connection”的新RedisConnection
  • 打开连接connection.Open().Wait();
  • 关闭连接connection.Close(true);
  • 现在,当我尝试connection.Open().Wait();时,会抛出错误“Connection is closed”。

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

如果我没有关闭连接,关闭Redis服务器,让客户端引发Closed事件,重新启动服务器,然后尝试打开与{{1}的连接,则会发生同样的情况。再次。 “连接已关闭”错误被抛出。

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

由于

1 个答案:

答案 0 :(得分:2)

打开和关闭BookSleeve连接不是预期的用途。

  • 因为它是一个多路复用器,所以它应该被打开一次,然后由多个调用者同时使用(它是线程安全的等)
  • 开放涉及各种握手(在网络和协议级别),以确保正确的操作 - 最好避免(这不是非常昂贵,请注意)
  • 一旦关闭,任何持续的状态都不可行;如果你真的想关闭它,你也可以使用一个全新的连接

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