服务端语言:nodeJs;
封装方法
const _redis = require("redis");//引入redis
/* 注意:如果redis-server与nodejs客户端都在本地,下列可写成
* client = redis.createClient();否则要对括号内容进行更改*/
const client = _redis.createClient(6379,'127.0.0.1'); //括号内容对应:端口号,主机
client.on("error", function (err) {
console.log("Error :" , err); //错误检测
});
client.on('connect', function(){
console.log('Redis连接成功.');
})
const redis = (function(){
var mod ={};
// set get部分
mod.set = function(_key, value, expire, callback){
client.set(_key, value, function(err, result){
if (err) {
console.log(err);
return;
}
if (!isNaN(expire) && expire > 0) {
client.expire(_key, parseInt(expire));
}
if(callback){
callback(result);
}
})
};
mod.get = function(_key, callback){
client.get(_key, function(err,result){
if (err) {
console.log(err);
callback(err,null)
return;
}
if(callback){
callback(result);
}
})
};
// 查找所有的hkeys
mod.hkeys=function(_key,eve){
client.hkeys(_key, function (err, replies) {
if(!err){
eve(replies);
client.quit();
}
});
};
// hset hget部分
mod.hset = function(_key,key2,value,callback){
client.hset(_key,key2,value);
};
mod.hgetall = function(_key, callback){
client.hgetall(_key,function(err,result){
if (!err) {
callback(result)
return;
}
});
};
mod.hget = function(_key,key2,callback){
client.hget( hashkey,_key, function(err, result){
if(!err){
callback(result);
}
else{
throw err
};
} )
};
return mod
})()
存取值检测
redis.set("usern ame5","sadasdas");//set值
redis.get("usern ame5",function(result){
console.log("get:"+result)// get:sadasdas
});
redis.hset("hash key","sadasdas",1528231340153)//hset值
redis.hset("hash key","sadasdadds","152823134asd0153") //hset值
redis.hget("hash key","sadasdas",function(result){
console.log("hash key get:")
console.log(result)//1528231340153
})
redis.hgetall("hash key",function(result){
console.log("hash key get:")
console.log(result)//{ sadasdas: '1528231340153',sadasdadds: '152823134asd0153' }
})
redis.hkeys("hash key",function(result){
console.log("hash key keys:"+result)//hash key keys:sadasdas,sadasdadds
})
个人结论
假设新开一所学校
set/get方法存储的是单个数据,相当于往学校里面塞入一个学生,查找的时候全部集合到一起,点名找出来。
hset/hget 存储的是一个数据对象,相当于在学校塞入学生的时候,确定好了班级,查找的时候,先找到班级再找学生。
对于大量数据而言 hset/hget 要优于 set/get。
网上都是瞎扯淡,只有权威值得相信:https://github.com/NodeRedis/node_redis