Redis Cluster集羣遠程訪問(SpringBoot 2.0)

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章