primus-redis
is a Redis store for Primus.
It takes care of distributing messages to other instances using Redis Pub/Sub.
Note: this is a very simple module for broadcasting all your messages over
Redis to all connected clients. If you're looking for room functionality,
see primus-redis-rooms
.
You can use primus-redis
with a single Redis instance, but it's not
recommended in production environment, since it makes Redis a single point of
failure.
var http = require('http'),
Primus = require('primus'),
PrimusRedis = require('primus-redis');
var server = http.createServer();
var primus = new Primus(server, {
redis: {
host: 'localhost',
port: 6379,
channel: 'primus' // Optional, defaults to `'primus`'
},
transformer: 'websockets'
});
primus.use('Redis', PrimusRedis);
//
// This'll take care of sending the message to all other instances connected
// to the same Redis channel.
//
primus.write('Hello world!');
Redis Sentinel is a failover mechanism built into Redis.
When using Sentinel, Redis client will automatically reconnect to new master server when current one goes down.
var http = require('http'),
Primus = require('primus'),
PrimusRedis = require('primus-redis');
var server = http.createServer();
var primus = new Primus(server, {
redis: {
sentinel: true,
endpoints: [
{ host: 'localhost', port: 26379 },
{ host: 'localhost', port: 26380 },
{ host: 'localhost', port: 26381 }
],
masterName: 'mymaster'
channel: 'primus' // Optional, defaults to `'primus`'
},
transformer: 'websockets'
});
primus.use('Redis', PrimusRedis);