Redis 中 set 与 hset 区别与使用

服务端语言: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

转载于:https://my.oschina.net/u/3797834/blog/1831269

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值