package com.sipai.config; import org.redisson.Redisson; import org.redisson.api.RedissonClient; import org.redisson.client.codec.Codec; import org.redisson.codec.JsonJacksonCodec; import org.redisson.config.Config; import org.redisson.config.SingleServerConfig; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; /** * @Author : YYJ * @CreateTime : 2021/9/14 * @Description : **/ @Configuration public class RedissonConfig { private static String MODE_SINGLE = "single"; private static String MODE_CLUSTER = "cluster"; @Value("${redis.mode}") public String mode; @Value("${redis.host}") public String host; @Value("${redis.port}") public String port; // @Value("${redis.database}") // public String database; @Value("${redis.password}") public String password; @Value("${cluster1.host.port:}") public String cluster1; @Value("${cluster2.host.port:}") public String cluster2; @Value("${cluster3.host.port:}") public String cluster3; @Value("${cluster4.host.port:}") public String cluster4; @Value("${cluster5.host.port:}") public String cluster5; @Value("${cluster6.host.port:}") public String cluster6; @Bean public RedissonClient redissonClient(){ RedissonClient redisson = null; Config conf = new Config(); if(MODE_SINGLE.equals(mode)) {//单机 //单节点模式 SingleServerConfig singleServerConfig = conf.useSingleServer(); //设置连接地址:redis://127.0.0.1:6379 singleServerConfig.setAddress("redis://" + host + ":" + port); //设置连接密码 singleServerConfig.setPassword(password); // singleServerConfig.setDatabase(Integer.valueOf(database)); }else if(MODE_CLUSTER.equals(mode)){//集群 conf.useClusterServers() .setScanInterval(2000); if(cluster1!=null && !cluster1.isEmpty()){ conf.useClusterServers().addNodeAddress("redis://" + cluster1); } if(cluster2!=null && !cluster2.isEmpty()){ conf.useClusterServers().addNodeAddress("redis://" + cluster2); } if(cluster3!=null && !cluster3.isEmpty()){ conf.useClusterServers().addNodeAddress("redis://" + cluster3); } if(cluster4!=null && !cluster4.isEmpty()){ conf.useClusterServers().addNodeAddress("redis://" + cluster4); } if(cluster5!=null && !cluster5.isEmpty()){ conf.useClusterServers().addNodeAddress("redis://" + cluster5); } if(cluster6!=null && !cluster6.isEmpty()){ conf.useClusterServers().addNodeAddress("redis://" + cluster6); } // .setPassword(password); } //使用json序列化方式 Codec codec = new JsonJacksonCodec(); conf.setCodec(codec); redisson = Redisson.create(conf); return redisson; } }