Thursday 8 June 2017

How to create a Redis connection with Master and Slave

I am trying to do a Redis connection, I have a "master" port and two slaves. I want to do this with a Sentinel.

My actually code to connect redis is actually deprecated, I think so.

Here is my code.

var redis = require('redis');
var client = redis.createClient(config.redis_port, config.redis_host,
{no_ready_check: true});

if (config.redis_password != null) {
  client.auth(config.redis_password, function (err) {
    if (err) throw err;
  });
}

client.on('connect', function(err, res) {
  logger.info('Connected to Redis ' + process.pid);
  redisIsReady = true;
});

client.on('error', function(err) {
  logger.error('Error connecting to Redis ' + process.pid);
  redisIsReady = false;
});

client.get(objectRequest.customerId, function(err, reply) {
    if (reply != null && reply >= config.max_requests) {
      var json = JSON.stringify({errorCode: validationErrors.TOO_MANY_REQUEST,
        description: errorMessage[validationErrors.TOO_MANY_REQUEST]});
      res.setHeader('Retry-After', config.retry_after);
      res.setHeader('Content-Type', 'application/json');
      res.setHeader('Content-Length', json.length);
      res.writeHead(429);
      res.write(json);
      return res.end();
    }
    // Set a value with an expiration
    client.incr(objectRequest.customerId);
    client.expire(objectRequest.customerId, config.retry_after);

I am reading on others posts and I think that maybe will be cool do it with ioredis. But I dont know much about Redis...

I hope you help me,

Roth.



via Roth

No comments:

Post a Comment