我試圖解決已經封鎖了我一個月Redis的:在錯誤的表
我使用bulding的Node.js的的Redis與和應用的後端問題,由於我們的結構數據錯誤我們必須從一個Redis的表數據傳輸至另一(我的意思是表什麼是我們用「選擇」了一個人,即「選擇2」)
我們收到了大量的請求,並推在一秒內有很多回應,而且無論我嘗試了多少I cou ld不停止數據混合。假設我們有一個「teacherID」,它必須存儲在Redis表#2裏面。並且「studentID」必須存儲在Redis表#4中。如何重要我試過(我已經多次查看我的代碼)我無法停止teacherID進入studentID。我試過的最後一個技巧實際上是,在每次選擇時都會回調。;
redisClient.select(4, function(err) {
if(err)
console.log("You could not select the table. Function will be aborted");
else {
// Proceed with the logic
}
});
什麼可能是我不能簡單地阻止這混亂的原因?一個讓我瘋狂的細節是,它在本地和在線上運行得非常好,但是當多個請求到達服務器時它會混合在一起。任何建議,以防止此錯誤? (儘管我不能將代碼分享給NDA,但我可以確保邏輯已被正確編碼)
每個redisclient實例只應綁定到一個數據庫。否則另一個並行選擇可能會改變數據庫,然後你的回調改變執行 –
我的猜測是你在回調的異步性質上犯了一個錯誤。我發現很多錯誤,例如,兩個異步調用發生更改並使用相同的變量,這會導致意外的行爲。沒有看到實際的代碼,很難說。您是否可以通過允許分享的某些代碼最小程度地重現問題? – mtsr