2016-04-14 8 views
3

Warum kann nicht benachrichtigt werden, wenn ein Schlüssel mit dem folgenden Code abgelaufen ist?Wie wird benachrichtigt, wenn ein Redis-Schlüssel abgelaufen ist?

Ich möchte redis verwenden, und wenn ein Schlüssel abgelaufen ist dann benachrichtigen Sie mich. Dann kann ich etwas tun.

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 __: abgelaufen' – AsherTan

+0

Willkommen bei Stack Overflow! Ich habe Ihre Frage bearbeitet, um nicht konstruktive Inhalte zu entfernen. Bitte bearbeiten Sie, um anzugeben, was genau Ihr Codebeispiel macht. Viel Glück! – Wtower

Antwort

5

Sie benötigen serverseitige Unterstützung für die Schlüsselbereichsbenachrichtigung.

redis-cli config set notify-keyspace-events KEA 

Nach Satz, können Sie unten Befehl überprüfen laufen:

redis-cli config get notify-keyspace-events 

Wenn Sie bekam Meldung wie:

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

Dann können Sie Ihren Code ausführen und bekommen, was Sie wollen .

Weitere mehr, achten Sie auf timing-of-expired-events.

+0

danke! Ich habe es verstanden. – AsherTan

Verwandte Themen