CNode

操作redis数据库,list操作

Ddanfengchaoxi发布于13 年前最后回复13 年前7 回复8742 浏览0 收藏

操作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)

D
danfengchaoxi#1·13 年前

错误已解决,出在select上

F
fourlee#2·13 年前
引用 danfengchaoxi错误已解决,出在select上

同问,如何解决的关于redis的select问题?

D
danfengchaoxi#3·13 年前
引用 danfengchaoxi错误已解决,出在select上

@fourlee select 的第一个参数是指定数据库,范围是0~15

F
fourlee#4·13 年前

@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中,请问以上问题有什么好的解决方法?

D
danfengchaoxi#5·13 年前
引用 fourlee@danfengchaoxi 是的,但是现在我遇到一个问题是: 以上代码在同一个脚本中,运行该脚本,发现,redis的数据并没有按要求保存在指定的database中,请问以上问题有什么好的解决...

select的参数1,去掉单引号试试。你在控制台输出信息看看哪里有问题。注意一下命令是否使用正确。 具体我也不清楚。

D
danfengchaoxi#7·13 年前

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

参与回复
登录后即可参与回复。登录