我在我的socket.io聊天應用程序的redis存儲中存儲用戶名/套接字ID對。如何從redis商店客戶端的鍵/值對中的值中獲取鍵值?
當用戶斷開連接時,我需要從redis存儲中刪除用戶名/套接字ID對。我已經看到如何從一個關鍵值獲取值,但從未從關鍵值獲取關鍵值。可能嗎?或者任何一種方式我如何才能從值中刪除鍵/值對。這裏是我的代碼
用於添加到存儲在連接
socket.on('username', function (username) {
client.set(username, socket.id, function (err) {
console.log(username + ":" + socket.id);
});
});
對於斷開,客戶不會知道什麼時候斷開會發生,可能發生由於網絡連接丟失,但是當插座斷開它總是打「斷開連接」事件。在這種情況下,我需要刪除用戶名/套接字ID對。
socket.on('disconnect', function() {
// dont know the username??
client.del(username, socket.id, function (err) {
if (err)
console.log(err);
else {
socket.disconnect();
console.log(socket.id + " DISCONNECTED");
}
});
});
謝謝,我確實繼續使用此解決方案。但我希望能有一個更直接的解決方案來解決這個問題。 – Bitsian 2013-04-30 06:03:27
如果有索引(鍵)和數據(值)。沒有索引就無法搜索數據。或者你做一個「表掃描」。這是索引/數據的性質。 – heinob 2013-04-30 07:05:18