1. 在m01 m02 m03上创建7001,7002 7003,7004 7005,7007文件夹
2. 将redis.conf 拷贝到7001文件夹
3. vi redis.conf
3.1)修改绑定地址及端口号
3.2)dir 指定数据存储目录 (每个要指定不同的目录)
3.3)cluster-enabled yes
3.4)cluster-config-file nodes700*.conf(启动自动生成)
3.5)cluster-node-timeout 5000
3.6)appendonly yes
4. 其余的配置文件做相应改变
5. 安装ruby,因为redis集群操作脚本用ruby写的
yum install ruby
yum install rubygems
6. 依次启动各个redis节点
7. 使用./redis-trib.db create --replicas 1 xxx:7001 xxx:7002 xxx:7003 xxx:7004 xxx:7005 xxx:7006
(--replicas 1 表示主节点和从节点的比例为1 即3主3从)
8.登录 redis-cli -c -h xxx -p 7001
9查看集群信息
xxx:7001>cluster nodes
package bhz.redis01;
import java.util.HashSet;
import java.util.Set;
import redis.clients.jedis.HostAndPort;
import redis.clients.jedis.JedisCluster;
import redis.clients.jedis.JedisPoolConfig;
public class TestClusterRedis {
public static void main(String[] args) {
Set<HostAndPort> jedisClusterNode = new HashSet<HostAndPort>();
jedisClusterNode.add(new HostAndPort("192.168.1.171", 7001));
jedisClusterNode.add(new HostAndPort("192.168.1.171", 7002));
jedisClusterNode.add(new HostAndPort("192.168.1.171", 7003));
jedisClusterNode.add(new HostAndPort("192.168.1.171", 7004));
jedisClusterNode.add(new HostAndPort("192.168.1.171", 7005));
jedisClusterNode.add(new HostAndPort("192.168.1.171", 7006));
//GenericObjectPoolConfig goConfig = new GenericObjectPoolConfig();
//JedisCluster jc = new JedisCluster(jedisClusterNode,2000,100, goConfig);
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();
}
}