Erlang gen_服务器中引发Redis异常

Erlang gen_服务器中引发Redis异常,erlang,redis,Erlang,Redis,我正在尝试使用gen_服务器从erlang在redis中插入10000条记录。然而,我得到了以下异常 exception exit: {connection_error,{connection_error,eaddrnotavail}} 注:- redis服务器上的端口范围足够 Redis配置为一次接受10000个连接 我还尝试使用定时器:睡眠来排除连接已满的可能性 我正在启动连接,启动查询并立即关闭连接 gen_服务器对redis的调用是同步的 我正在使用eredis作为图书馆 我在red

我正在尝试使用gen_服务器从erlang在redis中插入10000条记录。然而,我得到了以下异常

exception exit: {connection_error,{connection_error,eaddrnotavail}}
注:-

  • redis服务器上的端口范围足够
  • Redis配置为一次接受10000个连接
  • 我还尝试使用定时器:睡眠来排除连接已满的可能性
  • 我正在启动连接,启动查询并立即关闭连接
  • gen_服务器对redis的调用是同步的
  • 我正在使用eredis作为图书馆
  • 我在redis中得到了大约200到500次插入的错误
    • 成功:)发布答案以便帮助他人

      问题是内核等待时间

      Eredis使用gen_tcp,由于我在fast网络中,生成了10000个连接,许多连接处于TIME_WAIT状态,Eredis使用resuse addr为true,因此尽管我在代码中关闭了连接,但操作系统是处于TIME_WAIT状态的端口,erlang再次尝试连接到该端口

      成功了:)发布答案以便帮助他人

      问题是内核等待时间

      Eredis使用gen_tcp,由于我在fast网络中,生成了10000个连接,许多连接处于TIME_WAIT状态,Eredis使用resuse addr为true,因此尽管我在代码中关闭了连接,但操作系统是处于TIME_WAIT状态的端口,erlang再次尝试连接到该端口

      谢谢你的发帖。 张贴我的一些变化以及

      将eredis.hrl从

      -定义(SOCKET_OPTS,[binary,{active,once},{packet,raw},{reuseaddr,true}])

      -定义(SOCKET_OPTS,[binary,{active,once},{packet,raw},{reuseaddr,false}])。

      感谢您的发布。 张贴我的一些变化以及

      将eredis.hrl从

      -定义(SOCKET_OPTS,[binary,{active,once},{packet,raw},{reuseaddr,true}])

      -定义(SOCKET_OPTS,[binary,{active,once},{packet,raw},{reuseaddr,false}])