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

linux搭建redis集群

  • 这里为大家找好了一个搭建的教程 点我传送
  • 但是既然在云端搭建了集群没有不在PC机器上使用它的道理。那么如何开启远程访问呢?

    1
    2
    3
    打开redis.conf文件
    注释掉bind 127.0.0.1可以使所有的ip访问redis
    修改 protected-mode no

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

    1
    2
    3
    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 ……

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

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
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<HostAndPort> 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();
}

}
0%