日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
破解Redis重啟后的重連之謎(redis重啟后重連)

## 破解Redis重啟后的重連之謎

破解Redis重啟后的重連之謎是一個普遍存在的問題。Redis會在重啟后丟失連接,客戶端無法正確操作Redis。這可能會導(dǎo)致一些服務(wù)狀態(tài)斷開,甚至出現(xiàn)異常。如果客戶端連接可以自動重新建立,就可以避免這種情況。下面我們來看一下如何破解Redis重啟后的重連之謎。

要解決Redis重啟后的重連之謎,必須先看Redis的源代碼實現(xiàn),即redis/src/networking.c文件。這段僅有的7行客戶端重新連接的代碼,就是要解決這個問題的關(guān)鍵:

“`c

void reconnectClients(void) {

listIter li;

listNode *ln;

listRewind(server.clients,&li);

while((ln = listNext(&li)) != NULL) {

client *c = listNodeValue(ln);

/* Don’t reconnect slaves and subscribed clients. */

if (c->flags & (CLIENT_SLAVE|CLIENT_SUBSCRIBED)) continue;

/* This client was created after the reset, don’t reset it. */

if (c->flags & CLIENT_CREATED_AFTER_RESET) continue;

if (server.masterhost && (c->flags & CLIENT_MASTER)) {

freeClient(c);

continue;

}

c->flags |= CLIENT_CONNECTED;

c->rcvtime = server.unixtime;

server.current_client = c;

anetNonBlock(NULL,c->fd);

anetSendTimeout(NULL,c->fd,server.client_max_querybuf_len,c->reply_ctime);

}

}


從上面的代碼可以看出,reconnectClients函數(shù)將遍歷所有的客戶端連接,對于每個連接,會先判斷是否是slave或者subscribed,如果是則跳過,否則會設(shè)置FLAG為CONNECTED,并設(shè)置連接超時時間,從而實現(xiàn)客戶端自動重連。

另外,有時候也可以使用redis-cli客戶端來解決Redis重啟后的重連問題,redis-cli在服務(wù)器重啟后,也會發(fā)起重連,可以避免服務(wù)狀態(tài)斷開。下面是一段有關(guān)重連的redis-cli啟動命令:

redis-cli -h 127.0.0.1 -p 6379 -a PASSWOD –auto-reconnect


以上就是使用redis/src/networking.c文件以及redis-cli來解決Redis重啟后的重連之謎的方法。這些技術(shù)可以有效的保護Redis的安全運行狀態(tài),避免服務(wù)不可用。

創(chuàng)新互聯(lián)服務(wù)器托管擁有成都T3+級標(biāo)準(zhǔn)機房資源,具備完善的安防設(shè)施、三線及BGP網(wǎng)絡(luò)接入帶寬達10T,機柜接入千兆交換機,能夠有效保證服務(wù)器托管業(yè)務(wù)安全、可靠、穩(wěn)定、高效運行;創(chuàng)新互聯(lián)專注于成都服務(wù)器托管租用十余年,得到成都等地區(qū)行業(yè)客戶的一致認(rèn)可。


網(wǎng)頁名稱:破解Redis重啟后的重連之謎(redis重啟后重連)
文章網(wǎng)址:http://www.5511xx.com/article/cossgii.html