2016-04-14 11 views
3

キーが次のコードで期限切れになったときに通知を受け取ることができないのはなぜですか?redisキーが期限切れになったときに通知を受け取る方法は?

私はredisを使用したいと思います。キーが期限切れになったら、通知してください。それから私は何かできる。

var Redis = require('ioredis') 
var sub = new Redis() 
var pub = new Redis() 

var subKey = '[email protected]__:del' 

sub.subscribe(subKey, function() { 
    console.log('subscribe success !') 
}) 

sub.on('message', function (channel, message) { 
    console.log(channel, message, '======') 
}) 

var testKey = 'test' 
setTimeout(function() { 
    pub.multi() 
     .set(testKey, 'test redis notify') 
     .expire(testKey, 5) 
     .exec(function (err) { 
     if (err) { 
      console.log(err, 'why err ?') 
      return 
     } 
     console.log('.....') 
     }) 
}, 2000) 
+0

var subKey = '__keyevent @ 0 __:expired' – AsherTan

+0

ようこそ!スタックオーバーフロー!あなたの質問を編集して、非建設的なコンテンツを削除しました。コードサンプルが何をしているのかを正確に把握するために編集してください。がんばろう! – Wtower

答えて

5

キースペース通知のサーバー側のサポートが必要です。あなたがメッセージのようになっている場合

redis-cli config get notify-keyspace-events 

:次に

1) "notify-keyspace-events" 
2) "AKE" 

、あなたはあなたのコードを実行し、あなたが望む結果を得ることができます

redis-cli config set notify-keyspace-events KEA 

はセットした後、あなたがチェックするには以下のコマンドを実行することができます。

さらに詳しくは、timing-of-expired-eventsに注意してください。

+0

ありがとう!私はそれを得る。 – AsherTan

関連する問題