2019獨角獸企業重金招聘Python工程師標準>>>
?
1,pom依賴添加:
????<dependency>
??????????? <groupId>redis.clients</groupId>
??????????? <artifactId>jedis</artifactId>
??????????? <type>jar</type>
?? ??? ??? ?<scope>compile</scope>
??????????? <version>2.8.0</version>
??????? </dependency>
2,application.properties中配置:
?? #redis cluster
redis.cache.clusterNodes=120.125.122.103:5000,120.125.122.103:5001,120.125.122.103:5002,120.125.122.103:5003,120.125.122.103:5004,120.125.122.103:5005
redis.cache.commandTimeout=5000
#unit:second
redis.cache.expireSeconds=120
3,新增類RedisProperties? JedisClusterConfig,核心代碼如下:
@Component
@ConfigurationProperties(prefix = "redis.cache")
public class RedisProperties {
?? ?private int??? expireSeconds;
?? ?private String clusterNodes;
?? ?private int??? commandTimeout;
}
?
@Configuration
public class JedisClusterConfig {
?? ?@Autowired
?? ?private RedisProperties redisProperties;
?? ?
?? ?/**
?? ?* 注意:
?? ?* 這里返回的JedisCluster是單例的,并且可以直接注入到其他類中去使用
?? ?* @return
?? ?*/
?? ?@Bean
?? ?public JedisCluster getJedisCluster() {
?? ??? ?
?? ??? ?String[] serverArray = redisProperties.getClusterNodes().split(",");//獲取服務器數組(這里要相信自己的輸入,所以沒有考慮空指針問題)
?? ???? Set<HostAndPort> nodes = new HashSet<>();
?? ?
???????? for (String ipPort : serverArray) {
???????????? String[] ipPortPair = ipPort.split(":");
???????????? nodes.add(new HostAndPort(ipPortPair[0].trim(), Integer.valueOf(ipPortPair[1].trim())));
???????? }
??????? ?
??????? return new JedisCluster(nodes, redisProperties.getCommandTimeout());
?? ?}
?? ?
}
?
特別注意:@ConfigurationProperties(prefix = "redis.cache") 中redis.cache要和application.properties中的前綴對應。
?
4,使用:
????@Autowired
?? ?private JedisCluster?? jc ;
?