Как разделить базу данных Redis для тех же двух приложений в node.js - PullRequest
10 голосов
/ 10 июня 2011

У меня два одинаковых приложения, запущенных на разных, для демонстрации и для разработки. И я использую базу данных redis для хранения значения ключа, как я могу разделить базу данных redis для этих двух разных приложений. m используя node.js для клиента Redis. и m используя этот https://github.com/mranney/node_redis/ клиент Redis.

как разделить базу данных redis для того же приложения в узле.

1 Ответ

22 голосов
/ 10 июня 2011

Вы можете использовать функцию .select(db, callback) в node_redis.

var redis = require('redis'),
db = redis.createClient();

db.select(1, function(err,res){
  // you'll want to check that the select was successful here
  // if(err) return err;
  db.set('key', 'string'); // this will be posted to database 1 rather than db 0
});

Если вы используете expressjs, вы можете установить переменную среды разработки и производства, чтобы автоматически определять, какую базу данных вы используете.

var express = require('express'), 
app = express.createServer();

app.configure('development', function(){
  // development options go here
  app.set('redisdb', 5);
});

app.configure('production', function(){
  // production options here
  app.set('redisdb', 0);
});

Затем вы можете сделать один вызов на db.select() и установить для параметров production или development.

db.select(app.get('redisdb'), function(err,res){ // app.get will return the value you set above
  // do something here
});

Дополнительная информация о dev / production в expressjs: http://expressjs.com/guide.html#configuration

Функция обратного вызова node_redis .select(db, callback) вернет OK во втором аргументе, если выбрана база данных.Пример этого можно увидеть в разделе Использование * readme node_redis .

...