寻找将redis与node.js一起使用的有效方法
我已经编写了一些使用redis和node.js的聊天室示例,但在我继续这条路径之前,我想知道这是否是最好的方式:寻找将redis与node.js一起使用的有效方法,node.js,redis,Node.js,Redis,我已经编写了一些使用redis和node.js的聊天室示例,但在我继续这条路径之前,我想知道这是否是最好的方式: var redis = require('redis') , cache = redis.createClient(cfg.redis_port, cfg.redis_host) function getUsers(cb){ cache.select(cfg.redis_db, function(err, status){ cache.get('chat.
var redis = require('redis')
, cache = redis.createClient(cfg.redis_port, cfg.redis_host)
function getUsers(cb){
cache.select(cfg.redis_db, function(err, status){
cache.get('chat.users', function(err, data){
var users = data && JSON.parse(data) || [];
c.log('get users', users);
cb(users);
});
});
}
function addUser(user, cb){
getUsers(function(users){
users.push(user);
cache.select(cfg.redis_db, function(err, status){
cache.set('chat.users', JSON.stringify(users), function(){
c.log('cache set', arguments);
c.log('add user', user, users);
cb(users);
});
});
});
}
function removeUser(user, cb){
getUsers(function(users){
users = _.reject(users, function(val){
return user.nick === val.nick;
});
cache.select(cfg.redis_db, function(err, status){
cache.set('chat.users', JSON.stringify(users), function(){
c.log('cache set', arguments);
c.log('remove user', user, users);
cb(users);
});
});
});
}
我问的原因是,必须进行
缓存似乎相当麻烦。选择然后进行缓存。在Redis中获取,一旦选择了数据库,它将保持选中状态,直到发出另一个选择。由于节点Redis客户端将在客户端准备就绪之前发出的命令排队,因此您可以执行以下操作:
var redis = require('redis')
, cache = redis.createClient(cfg.redis_port, cfg.redis_host);
cache.select(cfg.redis_db);
// the rest of your code
它看起来不太像节点,但它可以工作,并在上的一个示例中显示(作为注释;很容易错过)