因為需啊把redis的資料導出和資料庫資料作對比,用管道符連接配接的方式導出資料:
/opt/$company_name/redis-3.0.5/bin/redis-cli -h $IP -p $PORT -a $PASSWORD keys \* |xargs -n 1 /opt/company_name/redis-3.0.5/bin/redis-cli -h $IP -p $PORT -a $PASSWORD get > key.txt
導出過程中,報錯 :
Could not connect to Redis at IP:PORT,Cannot assign requested address.
這是因為用戶端頻繁的連伺服器,資料量較大的時候,由于每次連接配接都在很短的時間内結束,導緻很多的TIME_WAIT,以至于用光了可用的端口号,是以新的連接配接沒辦法綁定端口,即“Cannot assign requestedaddress”。
是用戶端的問題不是伺服器端的問題。通過netstat,的确看到很多TIME_WAIT狀态的連接配接。
執行指令修改如下2個核心參數
sysctl -w net.ipv4.tcp_timestamps=1 #開啟對于TCP時間戳的支援,若該項設定為0,則下面一項設定不起作用