You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I recommend using ioredis rather than this library. It has inbuilt sentinel support and is likely much more robust
Wrapper around node_redis creating a client pointing at the master server which autoupdates when the master goes down.
varsentinel=require('redis-sentinel');// List the sentinel endpointsvarendpoints=[{host: '127.0.0.1',port: 26379},{host: '127.0.0.1',port: 26380}];varopts={};// Standard node_redis client optionsvarmasterName='mymaster';// masterName and opts are optional - masterName defaults to 'mymaster'varredisClient=sentinel.createClient(endpoints,masterName,opts);// redisClient is a normal redis client, except that if the master goes down// it will keep checking the sentinels for a new master and then connect to that.// No need to monitor for reconnects etc - everything handled transparently// Anything that persists over the normal node_redis reconnect will persist here. // Anything that doesn't, won't.// An equivalent way of doing the above (if you don't want to have to pass the endpoints around all the time) isvarSentinel=sentinel.Sentinel(endpoints);varmasterClient=Sentinel.createClient(masterName,opts);
Connection to slaves or the sentinel itself
You can get a connection to a slave (chosen at random) or the first available sentinel from the endpoints by passing in the role attribute in the options. E.g.
// The master is the default case if no role is specified.varmasterClient=sentinel.createClient(endpoints,masterName,{role: 'master'});varslaveClient=sentinel.createClient(endpoints,masterName,{role: 'slave'});varsentinelClient=sentinel.createClient(endpoints,{role: 'sentinel'});
Where you should also transparently get a reconnection to a new slave/sentinel if the existing one goes down.
TODO
We could probably be cleverer with reconnects etc. and there may be issues with the error handling