阿里云ESC实例搭建redis集群那些事


title: 阿里云ESC实例搭建redis集群那些事
date: 2019-02-28 17:52:17
tags:redis cluster
categories:开发

linux搭建redis集群

  • 这里为大家找好了一个搭建的教程 点我传送
  • 但是既然在云端搭建了集群没有不在PC机器上使用它的道理。那么如何开启远程访问呢?
    打开redis.conf文件
    注释掉bind 127.0.0.1可以使所有的ip访问redis
    修改 protected-mode no
    

redis集群开启远程访问但是还是报错java.net.ConnectException: Connection refused: connect

 usr/local/redis-cluster/bin/redis-trib.rb create --replicas 1 
 192.168.119.131:7000 192.168.119.131:7001 192.168.119.131:7002 192.168.119.131:7003 192.168.119.131:7004 192.168.119.131:7005
 !!! 上面的ip请更换为外网IP,而不是127.0.0.1

redis集群部署一直卡在Waiting for the cluster to join …

原因:机器没有开放redis集群总线端口。
解决方法: 开放redis集群总线端口
     集群总线端口是redis客户端连接的端口+10000
     如:redis客户端端口是7001   则:集群总线端口就是17001
     将每一个端口都开放。

利用Jedis进行 redis集群连接测试

package com.iyangpengyu;

import lombok.extern.slf4j.Slf4j;
import org.junit.Test;
import redis.clients.jedis.HostAndPort;
import redis.clients.jedis.JedisCluster;

import java.io.IOException;
import java.util.HashSet;
import java.util.Set;

@Slf4j
public class JedisTest {
    @Test
    public void test() throws IOException {
        // 创建并填充节点信息
        Set nodes = new HashSet<>();
        nodes.add(new HostAndPort("47.110.52.145", 7001));
        nodes.add(new HostAndPort("47.110.52.145", 7002));
        nodes.add(new HostAndPort("47.110.52.145", 7003));
        nodes.add(new HostAndPort("47.110.52.145", 7004));
        nodes.add(new HostAndPort("47.110.52.145", 7005));
        nodes.add(new HostAndPort("47.110.52.145", 7000));

        // 创建JedisCluster对象
        JedisCluster jedisCluster = new JedisCluster(nodes);

        // 使用jedisCluster操作redis
        String key = "jedisCluster";
        String setResult = jedisCluster.set(key, "hello redis!");
        System.out.println(setResult);

        String getResult = jedisCluster.get(key);
        System.out.println(getResult);

        // 关闭jedisCluster(程序执行完后才能关闭,内部封装了连接池)
        jedisCluster.close();
    }

}

你可能感兴趣的:(redis)