java單機操做redis3.2.10和集羣操做增刪改查

先直接附上單機版的鏈接和增刪改查,7000-7005是端口號java

package com.yilian.util;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;


import redis.clients.jedis.Jedis;
public class RedisTest {
    Jedis js = null;
    private String host = "101.236.39.141";
    private int port = 6379;


    /**
    * 連接redis數據庫,進行初始化
    * 
    * @param hostUrl:連接服務器的ip/名稱
    * @param hostPort:主機的端口號
    * @return:返回是否初始化連接成功
    */
    public boolean init(String host, int port) {
    if (js == null) {
    js = new Jedis(host, port);
    }
    if (js != null) {
    System.out.println("初始化成功");
    return true;
    } else {
    return false;
    }
    }


    /**
    * 連接redis數據庫,進行初始化
    * 
    * @param host:連接服務器的ip/名稱
    * @return:返回是否初始化連接成功
    */
    public boolean init(String host) {
    if (js == null) {
    js = new Jedis(host);
    }
    if (js != null) {
    System.out.println("初始化成功");
    return true;
    } else {
    return false;
    }
    }


    /**
    * 新增數據
    * 
    * @param key:新增數據的鍵
    * @param value:新增數據的值
    * @return:返回boolean值,表示是否新增數據成功
    */
    public boolean set(String key, String value) {


    if (js.exists(key)) {
    System.out.println(key + "已存在");
    System.out.println("若要修改數據請使用update()方法");
    return false;
    } else {
    js.set(key, value);
    if (js.exists(key)) {
    if (value.equals(js.get(key))) {
    System.out.println("增長數據成功");
    return true;
    } else {
    System.out.println("增長數據失敗");
    return false;
    }
    } else {
    System.out.println("增長數據失敗");
    return false;
    }
    }
    }


    /**
    * 添加多條數據
    * 
    * @param map:放置多條數據的鍵值對集合
    * @return:返回boolean值,表示是否新增數據所有成功
    */
    public boolean sets(Map<String, String> map) {
    boolean sets = true;
    for (Entry<String, String> e : map.entrySet()) {
    String key = e.getKey();
    String value = e.getValue();
    boolean set = set(key, value);
    if (!set) {
    sets = false;
    }
    }
    return sets;
    }


    /**
    * 刪除數據
    * 
    * @param key:要刪除數據的key
    * @return:返回boolean值,表示是否刪除成功
    */
    public boolean delete(String key) {


    if (js.exists(key)) {
    if (js.del(key) == 1) {
    System.out.println("刪除數據成功");
    return true;
    } else {
    System.out.println("刪除數據失敗");
    return false;
    }
    } else {
    System.out.println(key + "不存在");
    return false;
    }
    }


    /**
    * 刪除一組數據
    * 
    * @param keys:要刪除數據鍵集合
    * @return:返回boolean值,表示是否所有刪除成功
    */
    public boolean deletes(String[] keys) {
    boolean deletes = true;
    for (String key : keys) {
    boolean delete = delete(key);
    if (!delete) {
    deletes = false;
    }
    }
    return deletes;
    }


    /**
    * 修改數據
    * 
    * @param key:要修改數據的key
    * @param value:要修改數據的值
    * @return:返回boolean值,表示是否修改爲功
    */
    public boolean update(String key, String value) {
    if (js.exists(key)) {
    js.set(key, value);
    if (value.equals(js.get(key))) {
    System.out.println("修改數據成功");
    return true;
    } else {
    System.out.println("修改數據失敗");
    return false;
    }
    } else {
    System.out.println(key + "不存在");
    System.out.println("若要新增數據請使用set()方法");
    return false;
    }
    }


    /**
    * 獲取表中數據
    * 
    * @param key:要查詢的key
    * @return:返回查找到的數據;若是鍵不存在則返回null;
    */
    public String get(String key) {
    if (js.exists(key)) {
    System.out.println(js.get(key));
    return js.get(key);
    } else {
    System.out.println(key + "不存在");
    return null;
    }
    }
    /**
    * 獲取多條key的值
    * @param keys:多條key的集合
    * @return
    */
    public Map<String, String> gets(String[] keys) {
    Map<String, String> map = new HashMap<String, String>();
    for (String key : keys) {
    if (js.exists(key)) {
    String value = js.get(key);
    map.put(key, value);
    System.out.println(key + "-" + value);
    } else {
    System.out.println(key + "不存在");
    }
    }
    return map;
    }


    /**
    * 得到全部數據的鍵
    */
    public void getKeys() {
    Set<String> set = js.keys("*");
    if (set.size() != 0) {
    Iterator<String> it = set.iterator();
    while (it.hasNext()) {
    String key = it.next();
    System.out.println(key);
    }
    } else {
    System.out.println("數據庫暫時沒有數據");
    }
    }


    /**
    * 查詢全部數據
    */
    public void getAll() {
    Set<String> set = js.keys("*");
    if (set.size() != 0) {
    Iterator<String> it = set.iterator();
    while (it.hasNext()) {
    String key = it.next();
    String value = js.get(key);
    System.out.println(key + "-" + value);
    }
    } else {
    System.out.println("數據庫暫時沒有數據");
    }
    }


    /**
    * 關閉連接
    */
    public void unInit() {
    if (js != null) {
    js.close();
    js = null;
    }
    }

    public static void main(String[] args) {
        RedisTest re=new RedisTest();
        re.init("101.236.39.141", 7000);
        re.set("11", "2");
        re.get("11");
    }
}

集羣操做,它會本身按照節點去分發redis

package com.yilian.util;
import java.util.HashSet;  
import java.util.Set;  
  
import org.apache.commons.pool2.impl.GenericObjectPoolConfig;  
  
import redis.clients.jedis.HostAndPort;  
import redis.clients.jedis.JedisCluster; 
public class ClusterDemo {
	 private static JedisCluster jedisCluster=null;  
	    private static Set<HostAndPort> hostAndPorts=null;  
	      
	    public static  Set<HostAndPort> getHostAndPort(String hostAndPort){  
	        Set<HostAndPort> hap = new HashSet<HostAndPort>();  
	        String[] hosts = hostAndPort.split(",");  
	        String[] hs = null;  
	        for(String host:hosts){  
	            hs=host.split(":");  
	            hap.add(new HostAndPort(hs[0], Integer.parseInt(hs[1])));  
	        }  
	        return hap;  
	    }  
	    
	    public boolean set(String key, String value) {
	    	if (jedisCluster.exists(key)) {
	    	System.out.println(key + "已存在");
	    	System.out.println("若要修改數據請使用update()方法");
	    	return false;
	    	} else {
	    		jedisCluster.set(key, value);
	    	if (jedisCluster.exists(key)) {
	    	if (value.equals(jedisCluster.get(key))) {
	    	System.out.println("增長數據成功");
	    	return true;
	    	} else {
	    	System.out.println("增長數據失敗");
	    	return false;
	    	}
	    	} else {
	    	System.out.println("增長數據失敗");
	    	return false;
	    	}
	    	}
	    	}
	      
	    public static JedisCluster getJedisCluster(){  
	        GenericObjectPoolConfig gopc = new GenericObjectPoolConfig();  
	        gopc.setMaxTotal(32);  
	        gopc.setMaxIdle(4);  
	        gopc.setMaxWaitMillis(6000);  
	        hostAndPorts = getHostAndPort("101.236.39.141:7000");  
	        hostAndPorts = getHostAndPort("101.236.39.141:7003"); 
	        hostAndPorts = getHostAndPort("101.236.46.113:7001"); 
	        hostAndPorts = getHostAndPort("101.236.46.113:7004"); 
	        hostAndPorts = getHostAndPort("101.236.46.114:7002"); 
	        hostAndPorts = getHostAndPort("101.236.46.114:7005"); 
	        jedisCluster = new JedisCluster(hostAndPorts,gopc);  
	        return jedisCluster;  
	    }  
	      
	    public static void main(String[] args) {  
	        jedisCluster = getJedisCluster();  
	        System.out.println(jedisCluster.get("11"));  
	        System.out.println(jedisCluster.get("12"));  
	        ClusterDemo d=new ClusterDemo();
	        d.set("14", "4");
	      //  jedisCluster.set("11", "2");
	    }  

}
相關文章
相關標籤/搜索