linux搭建redis集群
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<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();
}
}