操作redis数据库,将数据存入list里, var data = {“from”:from, “to”:to, “msg”:msg};//data是对象,非字符串 redisClient.select(100,function(){ //将消息写入数据库 redisClient.lpush(key, JSON.stringify(data), function(err, reply){}); redisClient.lpush(to, from, function(err, reply){});//to\from都是字符串 }
第一个lpush没问题,第二个lpush返回错误。 不知道什么原因
请知道原因的帮着解释一下,谢了!
错误已解决,出在select上
同问,如何解决的关于redis的select问题?
@fourlee select 的第一个参数是指定数据库,范围是0~15
@danfengchaoxi 是的,但是现在我遇到一个问题是:
mysql.query('select * from bg_app_info', null, {logging:false, plain:false, raw:true}).success(function(res){
if(res.length > 0) {
res.forEach(function(app){
var redis_app_info = 'AppInfo:' + app.id;
var redis_app_key = 'AppKey:' + app.appkey;
redis.select('1', function(){
redis.hmset(redis_app_info, app);
redis.del(redis_app_key, function(){
redis.set(redis_app_key, app.id);
});
});
});
}
});
mysql.query('select * from bg_ad_keyword', null, {logging:false, plain:false, raw:true}).success(function(res){
if(res.length > 0) {
res.forEach(function(info){
redis.select('2', function(){
var redisKey = 'adkeywordadid:' + info.ad_id;
redis.lpush(redisKey, info.keyword);
});
});
}
});
以上代码在同一个脚本中,运行该脚本,发现,redis的数据并没有按要求保存在指定的database中,请问以上问题有什么好的解决方法?
select的参数1,去掉单引号试试。你在控制台输出信息看看哪里有问题。注意一下命令是否使用正确。 具体我也不清楚。
@danfengchaoxi 谢谢… 数据库1和2只是demo,这里并不涉及语法问题,而是想解决如何redis窜库问题