1. 程式人生 > >Java操作redis叢集和主從

Java操作redis叢集和主從

import java.io.IOException;
import java.util.HashSet;
import java.util.Set;

import org.junit.Test;

import redis.clients.jedis.HostAndPort;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisCluster;
import redis.clients.jedis.JedisPoolConfig;

public class ClusterJredis {
	/**
	 * 叢集模式操作
	 */
	@Test
	public void runCluster() {
			Set<HostAndPort>  node = new HashSet<HostAndPort>();
			node.add(new HostAndPort("192.168.1.235", 7001)) ;
			node.add(new HostAndPort("192.168.1.235", 7002)) ;
			node.add(new HostAndPort("192.168.1.235", 7003)) ;
			node.add(new HostAndPort("192.168.1.235", 7004)) ;
			node.add(new HostAndPort("192.168.1.235", 7005)) ;
			node.add(new HostAndPort("192.168.1.235", 7006)) ;
			JedisPoolConfig jpc = new JedisPoolConfig();
			jpc.setMaxIdle(20);
			jpc.setTestOnBorrow(true);
		        //返回連線時,檢測連線是否成功 
			jpc.setTestOnReturn(true);
			jpc.setMaxTotal(100);
			jpc.setMaxWaitMillis(-1);
			JedisCluster jc = new JedisCluster(node, 5000,100, jpc);
			jc.set("name", "zxx");
			System.out.println(jc.get("name"));
			try {
				jc.close();
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}  finally{
				jc=null;
			}
			
		}
	
	
	/**
	 * 主從模式操作
	 * @throws InterruptedException
	 */
	  @Test
	  public void runMs() throws InterruptedException {  
	        Jedis mnode = new Jedis("192.168.1.233",6379);//主機  
	        Jedis snode = new Jedis("192.168.1.234",6379);//從機  
	        //配從不配主  
	        snode.slaveof("192.168.248.233",6379);  
	        mnode.set("desc", "fuck");//主機寫  
	        Thread.sleep(20000);  
	        String result = snode.get("desc");//從機讀  
	        System.out.println(result); 
	        mnode.close();
	        snode.close();
	        
	 }  
	 
}

這裡只是一個小案例,功能可以自行擴充套件。