Docker一键安装redis集群

mkdir /home/redis-cluster
cd /home/redis-cluster

vim build.sh

#!/bin/bash
IP=192.168.119.101
for port in `seq 6111 6116`; do
  mkdir -p ./${port}/conf
`cat >> ./${port}/conf/redis.conf <<EOF
  port ${port}  
  protected-mode no  
  cluster-enabled yes   
  cluster-config-file nodes.conf 
  cluster-node-timeout 5000 
  cluster-announce-ip ${IP} 
  cluster-announce-port ${port} 
  cluster-announce-bus-port 1${port} 
  appendonly yes 
  masterauth mypassword
  requirepass mypassword 
EOF`
  mkdir -p ./${port}/data
  docker run -d -it  \
  -v /home/redis-cluster/${port}/conf/redis.conf:/usr/local/etc/redis/redis.conf \
  -v /home/redis-cluster/${port}/data:/data \
  --restart always --privileged=true --name redis-${port} --net host \
  redis:latest redis-server /usr/local/etc/redis/redis.conf
done

构建集群

redis-cli --cluster create 192.168.66.101:6111  192.168.66.101:6112 192.168.66.101:6113  192.168.66.101:6114 192.168.66.101:6115  192.168.66.101:6116 --cluster-replicas 1 -a mypassword

docker exec -it redis-6111 /bin/bash -c "redis-cli --cluster create 192.168.119.101:6111  192.168.119.101:6112 192.168.119.101:6113  192.168.119.101:6114 192.168.119.101:6115  192.168.119.101:6116 --cluster-replicas 1 -a mypassword"

用jedis连接redis集群

  <dependency>
           <groupId>redis.clients</groupId>
           <artifactId>jedis</artifactId>
  </dependency>

···
@Configuration
public class RedisCluterConfig {

@Autowired
private RedisProperties redisProperties;

@Bean
public JedisCluster jedisCluster(){
    JedisPoolConfig i2 = new JedisPoolConfig();
    i2.setMaxTotal(-1);
    i2.setMinIdle(2);
    i2.setMaxIdle(-1);
    i2.setTestOnBorrow(true);
    i2.setTestOnReturn(true);


    Set<HostAndPort> set = new HashSet<>();
    List<String> nodes = redisProperties.getCluster().getNodes();
    if(nodes!=null&&nodes.size()>0){
        for(int i=0;i<nodes.size();i++){
            String[] hostPort = nodes.get(i).split(":");
            if(hostPort!=null&&hostPort.length>0){
                HostAndPort hp = new HostAndPort(hostPort[0],Integer.valueOf(hostPort[1]));
                set.add(hp);
            }
        }
    }
    JedisCluster jedisCluster = new JedisCluster(set, 10000, 10000, 100, "mypassword", i2);
    /*JedisCluster jedisCluster = new JedisCluster(set);*/
    return jedisCluster;
}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值