連線長時間暫停

連線長時間暫停

伺服器redis在不同的網路命名空間中運作。我正在嘗試將客戶端連接到redis伺服器,它一直在等待但沒有回應,已經幾個小時了。

客戶端程式碼:

int main(){

        // ***** Pipeline *****
        auto redis = Redis("tcp://192.168.122.50:6379");
        // Create a pipeline.
//      auto pipe = redis.pipeline(false);
        sleep(5);
        int ep = 1;
    while(true){
cout<<"========================"<<ep++<<"==================================================\n";


        auto pipe = redis.pipeline(false);

        for(int i=1; i<=1000; i++){
            string s = to_string(i);
            if(i%2 == 1){
                pipe.set(s, s);
            }
            else {
                string st = to_string(i-1);
                pipe.get(st);       
            }
        }

        auto pipe_replies = pipe.exec();

        time += duration;    
        mntime = min(duration, mntime);  
        mxtime = max(duration, mxtime); 
        cout<<"RESULTS\n";
        
        for (int i=1; i<=1000; i++) {
           if (i%2 == 1) {
               auto set_result = pipe_replies.get<bool>(i-1);
            cout<<set_result<<"\n";
           } else {
              OptionalString get_result = pipe_replies.get<OptionalString>(i-1);
              if (get_result)
              cout << *get_result << endl;  
             else
              cout << "key does not exist" << endl;
                
          }
        }   

//cout<<"============================================================================\n";
            
        pipe.discard();
    }

終端輸出:

secondaryvm@secondaryvm:~/tests$ ./hclient
========================1==================================================

已經一個小時了,還在等待,所以我用 分析了它tcpdump是 的 tcp 流輸出tcpdump。我還嘗試 ping redis 伺服器運行的連接埠並且該連接埠已開啟。

root@secondaryvm:/home/secondaryvm/tests# nmap -p 6379 192.168.122.50

Starting Nmap 7.60 ( https://nmap.org ) at 2020-12-30 16:26 IST
Nmap scan report for 192.168.122.50
Host is up (0.000050s latency).

PORT     STATE SERVICE
6379/tcp open  redis
MAC Address: FE:2D:4A:25:55:EE (Unknown)

這裡發生了什麼事?以及如何預防?

相關內容