例如>
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]' }
序列化您的数据,例如 redisClient.hset ('users', JSON.stringify (data));
Redis 处理字符串,您需要将 JSON(实际上是 JavaScript 对象)转换为 JSON 字符串:
redisClient.hset('users', JSON.stringify(data));
然后,当您获取该 JSON 字符串时,您必须将该 JSON 字符串解析回 JavaScript 对象:
redisClient.hget('users', function (err, str) {
if (err) return console.error(err);
var data = JSON.parse(str); // note this might throw an exception
});
需要注意的一点是,您不会将回调传递到 hset 方法中,这意味着它不能保证在您调用 hget 时已完成。您也应该考虑解决此问题。
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