MyJedisConfig.java
3.62 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
package com.topdraw.redis.config;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.pool2.impl.GenericObjectPoolConfig;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.env.Environment;
import org.springframework.data.redis.connection.*;
import org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.core.StringRedisTemplate;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;
import redis.clients.jedis.JedisSentinelPool;
import javax.annotation.Resource;
import java.util.HashSet;
import java.util.Set;
/**
* @author :
* @description:
* @function :
* @date :Created in 2022/2/27 10:39
* @version: :
* @modified By:
* @since : modified in 2022/2/27 10:39
*/
@Configuration
@Slf4j
public class MyJedisConfig {
/***生产环境要打开此配置*/
@Value("${spring.redis.sentinel.master:''}")
private String master;
@Value("${spring.redis.sentinel.nodes:''}")
private String sentinelHost;
@Value(("${spring.redis.host:''}"))
private String host;
@Value(("${spring.redis.port:''}"))
private String port;
@Value(("${spring.redis.timeout:''}"))
private String timeout;
@Bean
public JedisPoolConfig jedisPoolConfig() {
JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
jedisPoolConfig.setMaxTotal(15);
jedisPoolConfig.setMaxIdle(10);
jedisPoolConfig.setMinIdle(5);
jedisPoolConfig.setMaxWaitMillis(10000);
jedisPoolConfig.setTestOnBorrow(true);
return jedisPoolConfig;
}
@Bean
public Jedis jedisPool(JedisPoolConfig jedisPoolConfig) {
log.info("spring.redis.sentinel.nodes: {}", sentinelHost);
if (StringUtils.isNotEmpty(sentinelHost) && !"''".equals(sentinelHost)) {
log.info("哨兵模式");
String[] split = sentinelHost.split(",");
Set<String> sentinels = new HashSet<>();
for (int i = 0; i < split.length; i++) {
String s = split[i];
sentinels.add(s);
}
JedisSentinelPool jedisPool = new JedisSentinelPool(master, sentinels, jedisPoolConfig);
Jedis jedis = jedisPool.getResource();
return jedis;
}else {
log.info("单台Redis, host: {}, port: {}, timeout: {}", host, port, timeout);
JedisPool jedisPool = new JedisPool(jedisPoolConfig, host, Integer.parseInt(port), Integer.parseInt(timeout));
return jedisPool.getResource();
}
}
// @Bean
// public Jedis jedisPool(@Value("${spring.redis.host}") String host,
// @Value("${spring.redis.port}") int port,
// @Value("${spring.redis.timeout}") int timeout,
//// @Value("${spring.redis.password}") String password,
// JedisPoolConfig jedisPoolConfig) {
//
//// JedisPool jedisPool = new JedisPool(jedisPoolConfig, host, port, timeout,"redis123");
// JedisPool jedisPool = new JedisPool(jedisPoolConfig, host, port, timeout);
//
// return jedisPool.getResource();
// }
}