sql >> データベース >  >> NoSQL >> Redis

node.jssetTimeoutの戻り値をredisに保存する

    オブジェクトをRedisに保存することはできません。 setTimeout メソッドはハンドラー(オブジェクト参照)を返します。

    1つのアイデアは、メモリに独自の連想配列を作成し、インデックスをRedisに格納することです。例:

    var nextTimerIndex = 0;
    var timerMap = {};
    
    var timer = setTimeout(function(timerIndex) {
        console.log('Ding!');
    
        // Free timer reference!
        delete timerMap[timerIndex];
    }, 5 * 1000, nextTimerIndex);
    
    // Store index in Redis...
    
    // Then, store the timer object for later reference
    timerMap[nextTimerIndex++] = timer;
    
    // ...
    // To clear the timeout
    clearTimeout(timerMap[myTimerIndex]);
    


    1. 複数のノードとsocket.io-redisを持つsocket.ioでソケットが生きている(接続されている)ことを確認する方法

    2. 集約フレームワークはインデックスを使用できません

    3. socket.io-redisの使用例

    4. MongoDBセキュリティのベストプラクティス