天天看點

6. Redis-叢集搭建(一)

6.1 Redis叢集搭建

1. 執行 mkdir redis-cluster 然後在這個目錄下建立redis7001、redis7002、redis7003、redis7004、redis7005、redis7006,6個檔案夾。模拟6個 redis 節點

6. Redis-叢集搭建(一)

2. 把 redis.conf 複制到 /opt/redis-cluster/redis700*目錄下面。

cp redis.conf /opt/redis-cluster/redis7001

3. 配置 redis.conf 檔案

daemonize yes

6. Redis-叢集搭建(一)

port 700*

6. Redis-叢集搭建(一)

bind 192.168.136.175 (綁定本機的ip)

6. Redis-叢集搭建(一)

dir "/opt/redis-cluster/redis7001"

6. Redis-叢集搭建(一)

cluster-enabled yes

6. Redis-叢集搭建(一)

cluster-config-file nodes-700*.conf

6. Redis-叢集搭建(一)

cluster-node-timeout 15000

6. Redis-叢集搭建(一)

appendonly yes

6. Redis-叢集搭建(一)

4. 由于安裝 redis 叢集需要 ruby 指令,安裝 ruby 指令

yum install centos-release-scl-rh

yum install rh-ruby23  -y

scl  enable  rh-ruby23 bash

6. Redis-叢集搭建(一)

yum install rubygems

gem install redis

6. Redis-叢集搭建(一)

5. 啟動 redis

6. Redis-叢集搭建(一)

接着進入 /opt/redis-3.0.0/src 目錄下

./redis-trib.rb create --replicas 1 192.168.136.175:7001 192.168.136.175:7003 192.168.136.175:7005 192.168.136.175:7002 192.168.136.175:7004 192.168.136.175:7006

6. Redis-叢集搭建(一)
6. Redis-叢集搭建(一)

叢集搭建完成!!

進入 redis 中測試

/opt/redis/bin/redis-cli -c -h 192.168.136.175 -p 7001 (-c 表示叢集,-h ip, -p端口号)

6. Redis-叢集搭建(一)

6.1.1 檢視叢集的狀态資訊

1. 檢視叢集的節點

cluster nodes

6. Redis-叢集搭建(一)

2. 檢視節點資訊

cluster info

6. Redis-叢集搭建(一)

6.2 java 連接配接 redis 叢集

public class TestClusterRedis {
	public static void main(String[] args) {
	    Set<HostAndPort> jedisClusterNode = new HashSet<HostAndPort>();
	    jedisClusterNode.add(new HostAndPort("192.168.136.175", 7001));
	    jedisClusterNode.add(new HostAndPort("192.168.136.175", 7002));
	    jedisClusterNode.add(new HostAndPort("192.168.136.175", 7003));
	    jedisClusterNode.add(new HostAndPort("192.168.136.175", 7004));
	    jedisClusterNode.add(new HostAndPort("192.168.136.175", 7005));
	    jedisClusterNode.add(new HostAndPort("192.168.136.175", 7006));
	    JedisPoolConfig cfg = new JedisPoolConfig();
	    cfg.setMaxTotal(100);
	    cfg.setMaxIdle(20);
	    cfg.setMaxWaitMillis(-1);
	    cfg.setTestOnBorrow(true); 
	    JedisCluster jc = new JedisCluster(jedisClusterNode,6000,1000,cfg);	    
	    
	    System.out.println(jc.set("age","20"));
	    System.out.println(jc.set("sex","男"));
	    System.out.println(jc.get("name"));
	    System.out.println(jc.get("name"));
	    System.out.println(jc.get("name"));
	    System.out.println(jc.get("name"));
	    System.out.println(jc.get("name"));
	    System.out.println(jc.get("name"));
	    System.out.println(jc.get("name"));
	    System.out.println(jc.get("name"));
	    System.out.println(jc.get("age"));
	    System.out.println(jc.get("sex"));
	    jc.close();
	}
}