6.1 Redis叢集搭建
1. 執行 mkdir redis-cluster 然後在這個目錄下建立redis7001、redis7002、redis7003、redis7004、redis7005、redis7006,6個檔案夾。模拟6個 redis 節點
2. 把 redis.conf 複制到 /opt/redis-cluster/redis700*目錄下面。
cp redis.conf /opt/redis-cluster/redis7001
3. 配置 redis.conf 檔案
daemonize yes
port 700*
bind 192.168.136.175 (綁定本機的ip)
dir "/opt/redis-cluster/redis7001"
cluster-enabled yes
cluster-config-file nodes-700*.conf
cluster-node-timeout 15000
appendonly yes
4. 由于安裝 redis 叢集需要 ruby 指令,安裝 ruby 指令
yum install centos-release-scl-rh
yum install rh-ruby23 -y
scl enable rh-ruby23 bash
yum install rubygems
gem install redis
5. 啟動 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
叢集搭建完成!!
進入 redis 中測試
/opt/redis/bin/redis-cli -c -h 192.168.136.175 -p 7001 (-c 表示叢集,-h ip, -p端口号)
6.1.1 檢視叢集的狀态資訊
1. 檢視叢集的節點
cluster nodes
2. 檢視節點資訊
cluster info
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();
}
}