在使用node实现redis时,如何将多个json对象添加到Hmset或hset或任何数据类型?

时间:2016-06-03 07:28:17

标签: node.js redis

例如 - >

var redis = require('redis');    
var port=6379;    
var host="127.0.0.1";    
var redisClient=null;

redisClient = redis.createClient(port, host);
redisClient.on('connect',function(err,reply){
    if(err)
        {
            console.log("Erro with connectivity");

        }
    else
        {
            console.log("connected with redis");     

        }
  });

数据变量是一个多重json对象

 redisClient.hset('users',data);

    redisClient.hgetall('users',function(err,object){
   if(err) 
       {
           console.log("Getting Hmset Error");
       }
    else
        {
            console.log("----Retrieving HMSET--");
            console.log(object);
            console.log("---End Retriving HMSET");
        }
});

但是json并没有完美地添加。

给出这样的结果。

data= { javascript: 'AngularJS',
  css: 'Bootstrap',
  users: '[object Object]',
  node: 'Express',
  '[object Object]': '[object Object]' }

3 个答案:

答案 0 :(得分:0)

将数据序列化为hset。例如。 redisClient.hset ('users', JSON.stringify (data));

答案 1 :(得分:0)

Redis使用字符串,您需要将JSON(实际上是一个JavaScript对象)转换为JSON字符串:

dequeueReusableCellWithIdentifier(forIndexPath:)

然后,在获取它时,您必须将该JSON字符串解析回JavaScript对象:

redisClient.hset('users', JSON.stringify(data));

有一点需要注意的是,您没有将回调传递给您的hset方法,这意味着在您调用hget时无法保证完成回调。你应该考虑修复它。

答案 2 :(得分:0)

Redis使用此数据类型来操作您必须在字符串中转换的JSON

redisClient.hset('users', JSON.stringify(data));

strings — a sequence of binary safe bytes up to 512 MB.
hashes — a collection of key value pairs.
lists — an in-insertion-order collection of strings.
sets — a collection of unique strings with no ordering.
sorted sets — a collection