java 操作Redis

使用Java來對遠程內存級數據庫進行操作,需要jedis-2.1.0.jar,下載地址:http://files.cnblogs.com/liuling/jedis-2.1.0.jar.zip

package chart1;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import redis.clients.jedis.Jedis;

public class demo {
	private Jedis jedis=null;
	
	  public void setup(){
		  //連接Redis服務器,IP+端口號,Redis的端口號一般是6379
		  //jedis=new Jedis("192.168.31.237",6379);
		  jedis=new Jedis("127.0.0.1",6379);
		  System.out.println("服務器連接成功");
		  //權限認證,本機Redis內存數據庫未設置密碼
		 // jedis.auth("admin");
		  
	  }
	  
	  /*
	   * redis存儲字符串
	   */
	  public void testString(){
		  jedis.set("name", "wangjiabin");//添加數據
		  System.out.println(jedis.get("name"));
		  
		  jedis.del("name");//刪除數據
		  System.out.println(jedis.get("name"));
		  
		  jedis.append("name", " is the best");//字符串拼接
		  System.out.println(jedis.get("name"));
		  
		  jedis.mset("name","zhuzhu","age","22","wechat","333545");//設置多個鍵值對
		  jedis.incr("age"); //進行加1操作
		  System.out.println(jedis.get("name")+"  "+jedis.get("age"));
		    
	  }
       /*
        * redis 操作List列表
        */
	  public void testList(){
		  jedis.del("java framework");
		 // System.out.println(jedis.lrange("java framework", 0, -1));
		  
		  jedis.lpush("java framework", "springs");//將給定的值推入列表的左側
		  jedis.lpush("java framework","struts2");
		  jedis.lpush("java framework", "hibernate");
		  //使用0爲範圍的起始索引,-1位範圍的結束索引,可以去除列表中包含的所有元素。
		  System.out.println(jedis.lrange("java framework",0, -1));
		 // System.out.println(jedis.llen("java framework"));//列表中元素的長度
		  
		  jedis.rpush("java framework", "struts3");//將給定的值推入列表的右側
		  jedis.rpush("java framework", "hibernate1");
		 // System.out.println(jedis.lrange("java framework", 0,-1));
		 // System.out.println(jedis.lindex("java framework",4));//按索引從列表中取出單個元素,列表中的索引是從0開始的
		  jedis.lpop("java framework");//從列表的左端彈出一個值
		  jedis.rpop("java framework");//從列表的右端彈出一個值
		  System.out.println(jedis.lrange("java framework", 0,-1)); 
	  }
	  
	  /*
	   * redis 操作set無序集合
	   * 通過散列保證自己存儲的每個字符串都不相同
	   */
	  
	  public void testSet(){
		  
		  jedis.sadd("user", "liuxiang");//將元素添加到集合中,這個集合是無序的,無法保存相同元素
		  jedis.sadd("user", "lixin");
		  jedis.sadd("user", "zhuzhuzhuwen");
		  jedis.sadd("user", "zhu1");
		  jedis.sadd("user", "zhu2");
		  jedis.sadd("user", "zhu3");
		  jedis.sadd("user", "zhu3");
		  jedis.srem("user", "zhu2");//移除一個元素
		  
		  System.out.println(jedis.smembers("user"));//返回集合包含的所有元素
		  System.out.println(jedis.sismember("user", "zhu2"));//檢查給定元素是否包含在集合中,返回值是bool類型
	  } 
	  public void testHash(){
		  //HSET key field value將哈希表key中的域field的值設爲value。   
	        jedis.hset("website", "google", "www.google.cn");   
	        jedis.hset("website", "baidu", "www.baidu.com");   
	        jedis.hset("website", "sina", "www.sina.com");  
	        System.out.println(jedis.hget("website", "google"));//獲取指定散列鍵的值
	        System.out.println(jedis.hgetAll("website"));//獲取散列包含的所有鍵值對

	        //HMSET key field value [field value ...] 同時將多個field - value(域-值)對設置到哈希表key中。   
	        Map map = new HashMap();   
	        map.put("cardid", "123456");   
	        map.put("username", "jzkangta");   
	        jedis.hmset("hash", map);   //存儲Map集合
	        System.out.println( jedis.hmget("hash", "cardid","username"));
            
	        
	        //HGET key field返回哈希表key中給定域field的值。   
	        System.out.println(jedis.hget("hash", "username"));   

	        //HMGET key field [field ...]返回哈希表key中,一個或多個給定域的值。   
	        List list = jedis.hmget("website","google","baidu","sina");   
	        
	        for(int i=0;i<list.size();i++){   
	            System.out.println(list.get(i));   
	        }   

	        
	        System.out.println(jedis.hlen("website"));   
	        System.out.println(jedis.hkeys("website")); 
	        System.out.println(jedis.hvals("website")); 
	        //HGETALL key返回哈希表key中,所有的域和值。   
	        Map<String,String> map1 = jedis.hgetAll("hash");   //通過key獲取map 集合中的值
	        for(Map.Entry entry: map1.entrySet()) {   
	             System.out.print(entry.getKey() + ":" + entry.getValue() + "\t");   
	        }  
	        
	        jedis.hdel("website", "google");//刪除哈希表key中的一個或多個指定域
             List list1 = jedis.hmget("website","google","baidu","sina");   
	        
	        for(int i=0;i<list1.size();i++){   
	            System.out.println(list1.get(i));   
	        }   
	        //HDEL key field [field ...]刪除哈希表key中的一個或多個指定域。   
	        //HLEN key 返回哈希表key中域的數量。   
	        //HEXISTS key field查看哈希表key中,給定域field是否存在。   
	        //HINCRBY key field increment爲哈希表key中的域field的值加上增量increment。   
	        //HKEYS key返回哈希表key中的所有域。   
	        //HVALS key返回哈希表key中的所有值。   

		 
	  }
	  
	  
	  
	   public static void main(String[] args) {
		   demo d=new demo();
		   d.setup();
		  // d.testString();
		   //d.testList();
		  // d.testSet();
		   d.testHash();
		   
	}
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章