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();
}
}