विशिष्ट चैनल ('[email protected]__:expired'
के सब्सक्राइब्ड क्लाइंट का उपयोग करके "एक्सपायर्ड" टाइप कीइवेंट नोटिफिकेशन को सुनना वास्तव में संभव है। ) और उसका संदेश सुनना घटना।
setInterval / setTimeout या अतिरिक्त पुस्तकालयों की कोई आवश्यकता नहीं है
अवधारणा का प्रमाण (काम कर रहे:NodeJS v.9.4.0 के साथ परीक्षण किया गया) )
const redis = require('redis')
const CONF = {db:3}
var pub, sub
//.: Activate "notify-keyspace-events" for expired type events
pub = redis.createClient(CONF)
pub.send_command('config', ['set','notify-keyspace-events','Ex'], SubscribeExpired)
//.: Subscribe to the "notify-keyspace-events" channel used for expired type events
function SubscribeExpired(e,r){
sub = redis.createClient(CONF)
const expired_subKey = '[email protected]'+CONF.db+'__:expired'
sub.subscribe(expired_subKey,function(){
console.log(' [i] Subscribed to "'+expired_subKey+'" event channel : '+r)
sub.on('message',function (chan,msg){console.log('[expired]',msg)})
TestKey()
})
}
//.: For example (create a key & set to expire in 10 seconds)
function TestKey(){
pub.set('testing','redis notify-keyspace-events : expired')
pub.expire('testing',10)
}