You forgot to subscribe to a subscriber client on a specific channel. In addition, if you want to keep track of all the events, you need to use a template-based subscription.
You might want to do something like this (untested):
subscriber.on("pmessage", function (pattern, channel, message) { console.log("("+ pattern +")" + " client received message on " + channel + ": " + message); switch (channel) {
See the Redis documentation and edit nodes for more information .
Update:
Here's an example to illustrate the difference between a channel subscription and a template subscription. Correct error handling omitted for brevity.
var redis = require("redis"); var client = redis.createClient('6379','127.0.0.1'); var subscriber1 = redis.createClient('6379','127.0.0.1'); var subscriber2 = redis.createClient('6379','127.0.0.1'); // First subscriber listens only to events occurring for key mykey function S1(next) { subscriber1.on('message', function(channel, msg) { console.log( "S1: received on "+channel+" event "+msg ) }); subscriber1.subscribe( " __keyspace@0 __:mykey", function (err) { next(); }); } // Second subscriber listens to events occuring for ALL keys function S2(next) { subscriber2.on('pmessage', function(pattern,channel, msg) { console.log( "S2: received on "+channel+" event "+msg ) }); subscriber2.psubscribe( " __keyspace@0 __:*", function (err) { next(); }); } // Do something with keys mykey and anotherkey function do_something() { client.set("mykey","example", function( err ) { client.set("mykey", "another example", function( err ) { client.del("mykey", function( err ) { client.set("anotherkey","example", function( err ) { client.del("anotherkey"); }); }); }); }); } // Here we go S1( function () { S2( function () { do_something(); }); });
The result of this script is:
S1: received on __keyspace@0 __:mykey event set S2: received on __keyspace@0 __:mykey event set S2: received on __keyspace@0 __:mykey event set S1: received on __keyspace@0 __:mykey event set S1: received on __keyspace@0 __:mykey event del S2: received on __keyspace@0 __:mykey event del S2: received on __keyspace@0 __:anotherkey event set S2: received on __keyspace@0 __:anotherkey event del
You can see that the first subscriber received only events for mykey, and the second subscriber received events for all keys.