node package manager
Share your code. npm Orgs help your team discover, share, and reuse code. Create a free org ยป



Watch keys in redis. Send a pubsub message when they expire or go away.


Redis doesnt fire pub sub events when keys expire and probably never will. This little guy just polls for the keys you're interested in and fires off a <key_name>_expired message. You can build really neat things with this.


// Setup respirator
var respirator = require('respirator').createServer();

// Shorcut for getting a redis pubsub connection
var pubsub = respirator.getRedis();

// Subscribe to all expired events respirator will fire off

// Actual listener for the expired event
pubsub.on('pmessage', function(pattern, channel, message){
    // pattern => *_expired
    // channel => lucas:now_playing_expired
    // message => {"key": "lucas:now_playing"}
    console.log('Something expired! ', JSON.parse(message)['key']);

// Now let's actually do something with it.
// Say we want to store what song I'm currently listening to
// and then get notified when that expires.

var nowPlaying = {
    artist: "Unknown Mortal Orchestra",
    title: "Ffunny Ffrends",
    id: "a9zcf",
    album: "SXSW Sampler",
    source: ""

var redis = respirator.getRedis();
redis.set('lucas:now_playing', JSON.stringify(nowPlaying));
redis.expire('lucas:now_playing', 600);

// Tell respirator to actually watch it.
// In 5 minutes we'll see the console.log pop up.