Redis 中 set 與 hset 區別與使用

服務端語言:nodeJs;javascript

封裝方法

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
})

我的結論

假設新開一所學校java

set/get方法存儲的是單個數據,至關於往學校裏面塞入一個學生,查找的時候所有集合到一塊兒,點名找出來。node

hset/hget 存儲的是一個數據對象,至關於在學校塞入學生的時候,肯定好了班級,查找的時候,先找到班級再找學生。git

對於大量數據而言 hset/hget 要優於 set/get。github

網上都是瞎扯淡,只有權威值得相信:https://github.com/NodeRedis/node_redisredis

相關文章
相關標籤/搜索