操作redis数据库,list操作
发布于 2年前 作者 danfengchaoxi 1431 次浏览

操作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返回错误。 不知道什么原因

7 回复

请知道原因的帮着解释一下,谢了!

错误已解决,出在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窜库问题

回到顶部