1.RedisDesktopManager 不支持集羣訪問方式
2.FastoRedis支持集羣訪問方式
3.spirngboot2.0 連接redis集羣
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
</dependency>
# yml文件配置
spring:
redis:
#通過jedis進行連接池管理
jedis:
pool:
#最大連接數
max-active: 8
#最大空閒連接數
max-idle: 8
#最小空閒連接數
min-idle: 0
#最大阻塞等待時間,負值爲無限制
max-wait: -1
password:
#超時時間,毫秒
timeout: 50000
#出現異常最大重試次數
maxAttempts: 5
cluster:
nodes: 192.168.3.8:6380,192.168.3.8:6381,192.168.3.8:6382,192.168.3.8:6383,192.168.3.8:6384,192.168.3.8:6385
@Configuration
@ConditionalOnClass({JedisCluster.class})
public class RedisConfig {
@Value("${spring.redis.cluster.nodes}")
private String clusterNodes;
@Value("${spring.redis.timeout}")
private int timeout;
@Value("${spring.redis.jedis.pool.max-idle}")
private int maxIdle;
@Value("${spring.redis.jedis.pool.max-wait}")
private long maxWaitMillis;
@Value("${spring.redis.maxAttempts}")
private int maxAttempts;
@Value("${spring.redis.password}")
private String password;
@Bean
public JedisCluster getJedisCluster() {
String[] cNodes = clusterNodes.split(",");
Set<HostAndPort> nodes = new HashSet<HostAndPort>();
// 分割出集羣節點
for (String node : cNodes) {
String[] hp = node.split(":");
nodes.add(new HostAndPort(hp[0], Integer.parseInt(hp[1])));
}
JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
jedisPoolConfig.setMaxIdle(maxIdle);
jedisPoolConfig.setMaxWaitMillis(maxWaitMillis);
// 創建集羣對象
JedisCluster jedisCluster = new JedisCluster(nodes, timeout, timeout, maxAttempts, jedisPoolConfig);
return jedisCluster;
}
}
測試過程中出現Could not get a resource from the pool
,是因爲之前做集羣時使用127.0.0.1地址,需要改爲真實可訪問ip地址。
刪除各個目錄下nodes.conf文件,重新制作集羣,使用ip地址
./redis-trib.rb create --replicas 1 192.168.3.8:6380 192.168.3.8:6381 192.168.3.8:6382 192.168.3.8:6383 192.168.3.8:6384 192.168.3.8:6385
測試OK~
也可爲集羣設置統一密碼,帶密碼訪問。
https://www.cnblogs.com/linjiqin/p/7462822.html