Redis:Cannot assign requested address的解决办法

今天想试一下redis,写了个程序,对redis连续进行100000访问,却出现以了Cannot assignrequestedaddress的问题,我起先是以为是redis的问题(可能承受不了这么多访问量),可是redis被大家吹的那么NB,不会出现这么SB的问题吧,于是google之,发现原来是:

客户端频繁的连服务器,由于每次连接都在很短的时间内结束,导致很多的TIME_WAIT,以至于用光了可用的端口号,所以新的连接没办法绑定端口,即“Cannot assign requestedaddress”。是客户端的问题不是服务器端的问题。通过netstat,的确看到很多TIME_WAIT状态的连接。
从网上找了解决办法:
执行命令修改如下2个内核参数   

sysctl -w net.ipv4.tcp_timestamps=1 开启对于TCP时间戳的支持,若该项设置为0,则下面一项设置不起作用

sysctl -w net.ipv4.tcp_tw_recycle=1 表示开启TCP连接中TIME-WAIT sockets的快速回收

不过好像只有root用户才能有修改这两个参数的权限,我正好有机器的root权限,修改之,发现,还真可以。

但是如果没有root权限怎么解决,能不能通过修改程序获得就不知道了。希望高人看到后指点一下!



Redis 错误 :Cannot assign request

在CentOS上对Redis的性能进行性能测试时,数量一加大就会报:

Could not connect to Redis at 127.0.0.1:6379: connect: Cannot assign request

经查官方Wiki是系统网络配置问题已经解决:

echo 1 > /proc/sys/net/ipv4/tcp_tw_reuse


  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
"Cannot assign requested address"是一个常见的错误信息,通常在连接Redis服务器时出现。这个错误提示表明客户端无法为新的连接分配一个可用的端口。有几种可能的原因导致这个错误出现。 一种可能的原因是并发访问量较大,处于TIME-WAIT状态下的TCP连接较多。在这种情况下,可以尝试使用pconnect替换connect来解决问题。pconnect是一个基于连接池的方法,可以重用已经建立的连接,而不需要频繁地创建和关闭连接。这将减少新连接的需求,从而避免了"Cannot assign requested address"错误的发生。 另一种可能的解决方案是调整操作系统的网络配置。通过增加系统的可用端口范围,可以提供更多的可用端口给新的连接。具体的配置方法取决于操作系统的类型和版本,可以参考相关的文档或者咨询系统管理员进行配置。 总结起来,解决"Cannot assign requested address"错误的方法有两种:一是使用pconnect来重用已经建立的连接,二是调整操作系统的网络配置以提供更多的可用端口。根据具体的情况选择合适的解决方案来解决该错误。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [TIME_WAIT引起Cannot assign requested address报错](https://blog.csdn.net/weixin_30266885/article/details/96400831)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [Redis报错Cannot assign requested address解决方案](https://blog.csdn.net/SakuraLLj/article/details/131690549)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值