Redis集群搭建

创建集群:

  1. 这里在同一台服务器用不同端口标识不同的 redis 服务。
  2. 在 / 下创建 redis-cluster 目录,其下创建 7001,7002 ··· 7006目录:
    mkdir -p /redis-cluster/700{1..6}/{logs,data} && cd /redis-cluster
  3. 在 /redis-cluster 目录下编写配置文件 cluster.sh:

    for i in {1..6}
    do
    cat > 700${i}/redis.conf <<EOF
    daemonize yes 
    port 700${i} 
    cluster-enabled yes 
    cluster-config-file cluster-nodes-700${i}.conf
    cluster-node-timeout 15000
    appendonly yes
    bind 0.0.0.0
    protected-mode no
    dbfilename dump-700${i}.rdb
    logfile /redis-cluster/700${i}/logs/redis.log
    pidfile /redis-cluster/700${i}/data/redis.pid
    dir /redis-cluster/700${i}/data
    appendfilename "appendonly-700${i}.aof"
    EOF
    done
    
  4. 为 cluster.sh 脚本添加权限并运行该脚本:

    chmod 777 cluster.sh    #给脚本添加权限
    ./cluster.sh        #运行该脚本
  5. 将 redis 的 src 目录下的客户端命令拷贝至 /redis-cluster 文件夹下:

    #将 redis 路径替换为自己本机的 redis 路径
    cp /usr/local/src/redis/redis-4.0.14/src/redis-cli /redis-cluster/redis-cli
    cp /usr/localsrc/redis/redis-4.0.14/src/redis-server /redis-cluster/redis-server
    
  6.  此时 /redis-cluster 目录结构:
  7. 启动六个 redis 进程:
    redis-server 7001/redis.conf
    redis-server 7002/redis.conf
    redis-server 7003/redis.conf
    redis-server 7004/redis.conf
    redis-server 7005/redis.conf
    redis-server 7006/redis.conf
  8. 查看 redis 进程:
  9. 执行创建集群命令:
    #将地址替换为自己的地址
    redis-cli --cluster create 62.234.35.76:7001 62.234.35.76:7002 62.234.35.76:7003 62.234.35.76:7004 62.234.35.76:7005 62.234.35.76:7006 --cluster-replicas 1
    
    #说明:
       #redis 集群至少需要 3 个主节点,每个主节点有一个从节点,总共 6 个节点
       #replicas 指定 1 表示:每个主节点有一个从节点
  10. 此时 redis 集群启动成功:

测试集群:

  1. 进入集群:
    redis-cli -c -h 62.234.35.76 -p 7001
    # -c 表示:以集群方式连接 redis
    # -h 表示:指定 ip 地址
    # -p 表示:指定端口号
  2.  查询集群信息:
    cluster nodes    #查询集群节点信息
    
    cluster info     #查询集群状态信息
    
    info replication    #当前 redis 服务的信息
  3. 插入 key-value :
  4. Spring 测试 redis 集群:
     // 连接redis集群
        @Test
        public void testJedisCluster() {
    
            JedisPoolConfig config = new JedisPoolConfig();
            // 最大连接数
            config.setMaxTotal(30);
            // 最大连接空闲数
            config.setMaxIdle(2);
    
            //集群结点
            Set<HostAndPort> jedisClusterNode = new HashSet<HostAndPort>();
            jedisClusterNode.add(new HostAndPort("62.234.35.76", 7001));
            jedisClusterNode.add(new HostAndPort("62.234.35.76", 7002));
            jedisClusterNode.add(new HostAndPort("62.234.35.76", 7003));
            jedisClusterNode.add(new HostAndPort("62.234.35.76", 7004));
            jedisClusterNode.add(new HostAndPort("62.234.35.76", 7005));
            jedisClusterNode.add(new HostAndPort("62.234.35.76", 7006));
            JedisCluster jc = new JedisCluster(jedisClusterNode, config);
    
            JedisCluster jcd = new JedisCluster(jedisClusterNode);
            jcd.set("name", "zhangsan");
            String value = jcd.get("name");
            System.out.println(value);
        }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值