记录redis配置过程
1.maven引入jar
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.9.0</version>
</dependency>
2.配置属性类 RedisProperties
@Component
@ConfigurationProperties(prefix = "redis")
public class RedisProperties {
private int maxTotal = 8;
private int maxIdle = 8;
private int minIdle = 0;
private long maxWaitMillis = -1L;
private String host = "127.0.0.1";
private Integer port = 6379;
private String password = "123456";
private Integer timeout = 2000;
private Integer database = 0;
public void jedisPoolConfig(JedisPoolConfig jedisPoolConfig) {
jedisPoolConfig.setMinIdle(minIdle);
jedisPoolConfig.setMaxIdle(maxIdle);
// 连接池的最大数据库连接数
jedisPoolConfig.setMaxTotal(maxTotal);
// 最大建立连接等待时间
jedisPoolConfig.setMaxWaitMillis(maxWaitMillis);
}
public JedisPool jedisPool(JedisPoolConfig jedisPoolConfig) {
JedisPool jedisPool = new JedisPool(jedisPoolConfig, host, port, timeout, password, database);
return jedisPool;
}
}
3.在application.yml中配置redis
redis:
maxTotal: 10
maxIdle: 5
minIdle: 0
maxWaitMillis: 10000
host: localhost
port: 6379
password: 12345
timeout: 2000
database: 0
4.配置RedisConfig
1-).
@Configuration
public class RedisConfig {
@Autowired
private RedisProperties redisProperties;
/** JedisPoolConfig 连接池配置 */
@Bean
public JedisPoolConfig jedisPoolConfig() {
JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
redisProperties.jedisPoolConfig(jedisPoolConfig);
System.out.println("jedisPoolConfig--初始化----------------------------");
return jedisPoolConfig;
}
/** JedisPool连接池 */
@Bean
public JedisPool jedisPool() {
JedisPool jedisPool = redisProperties.jedisPool(jedisPoolConfig());
System.out.println("jedisPool--初始化----------------------------");
return jedisPool;
}
}
2-).
@Configuration
public class RedisConfig {
@Autowired
RedisProperties redisProperties;
@Bean
public JedisPoolConfig jedisPoolConfig() {
JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
redisProperties.jedisPoolConfig(jedisPoolConfig);
return jedisPoolConfig;
}
@Bean
public RedisStandaloneConfiguration standaloneConfig(){
RedisStandaloneConfiguration standaloneConfig = new RedisStandaloneConfiguration();
standaloneConfig.setDatabase(redisProperties.getDatabase());
standaloneConfig.setHostName(redisProperties.getHost());
standaloneConfig.setPort(redisProperties.getPort());
standaloneConfig.setPassword(RedisPassword.of(redisProperties.getPassword()));
return standaloneConfig;
}
@Bean
public JedisConnectionFactory jedisConnectionFactory(RedisStandaloneConfiguration redisStandaloneConfiguration) {
JedisConnectionFactory jedisConnectionFactory = new JedisConnectionFactory(redisStandaloneConfiguration);
return jedisConnectionFactory;
}
@Bean
public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) {
RedisTemplate<String, Object> template = new RedisTemplate<String, Object>();
template.setConnectionFactory(redisConnectionFactory);
return template;
}
}
5.测试使用
1-).
@Autowired
private JedisPool jedisPool;
Jedis jedis = jedisPool.getResource();
jedis.setex("use", 2000, "testRedis");
2-).
@Autowired
private RedisTemplate redisTemplate;
redisTemplate.opsForValue().set("lml", "lml250");