1. Redis配置
application-dev.yml
spring: redis: host: 47.115.43.234 port: 6379 password: 2njv2EIXmLj5DjdH database: 0 jedis: pool: max_total: 500 #控制一个pool可分配多少个jedis实例,用来替换max-active,如果是jedis 2.4以后用该属性 #max-active: 10 #连接池最大连接数(负值表示没有限制) max-wait: 3000 #连接池最大阻塞等待时间(负值表示没有限制) max-idle: 10 #连接池最大空闲连接数 min-idle: 1 #连接汉最小空闲连接数 max_wait_millis: 1000 #最大建立连接等待时间。如果超过此时间将接到异常。设为-1表示无限制 min_evictable_idle_time_millis: 300000 #连接的最小空闲时间 默认1800000毫秒(30分钟) num_tests_per_eviction_run: 3 #每次释放连接的最大数目,默认3 time_between_eviction_runs_millis: 30000 #逐出扫描的时间间隔(毫秒) 如果为负数,则不运行逐出线程, 默认-1 test_on_borrow: true #是否在从池中取出连接前进行检验,如果检验失败,则从池中去除连接并尝试取出另一个 test_while_idle: true #在空闲时检查有效性, 默认false timeout: 60 #连接超时时间(毫秒)
2. Redis配置类
import com.fasterxml.jackson.annotation.JsonAutoDetect; import com.fasterxml.jackson.annotation.PropertyAccessor; import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackson.databind.ObjectMapper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Value; import org.springframework.cache.annotation.CachingConfigurerSupport; import org.springframework.cache.annotation.EnableCaching; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.data.redis.connection.RedisConnectionFactory; import org.springframework.data.redis.connection.RedisPassword; import org.springframework.data.redis.connection.RedisStandaloneConfiguration; import org.springframework.data.redis.connection.jedis.JedisClientConfiguration; import org.springframework.data.redis.connection.jedis.JedisConnectionFactory; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer; import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer; import org.springframework.data.redis.serializer.RedisSerializer; import org.springframework.data.redis.serializer.StringRedisSerializer; import redis.clients.jedis.JedisPoolConfig; /** * Redis配置类 * * @author * @date 2021/6/24 * @since JDK 11 */ @Configuration @EnableCaching public class RedisConfig extends CachingConfigurerSupport { private static final Logger log = LoggerFactory.getLogger(RedisConfig.class); // 连接信息 @Value("${spring.redis.host}") private String host; @Value("${spring.redis.port}") private int port; @Value("${spring.redis.password}") private String password; @Value("${spring.redis.database}") private int database; @Value("${spring.redis.timeout}") private int timeout; // 连接池信息 @Value("${spring.redis.jedis.pool.max_total}") private int maxTotal; @Value("${spring.redis.jedis.pool.max-idle}") private int maxIdle; @Value("${spring.redis.jedis.pool.min-idle}") private int minIdle; @Value("${spring.redis.jedis.pool.max_wait_millis}") private int maxWaitMillis; @Value("${spring.redis.jedis.pool.min_evictable_idle_time_millis}") private int minEvictableIdleTimeMillis; @Value("${spring.redis.jedis.pool.num_tests_per_eviction_run}") private int numTestsPerEvictionRun; @Value("${spring.redis.jedis.pool.time_between_eviction_runs_millis}") private int timeBetweenEvictionRunsMillis; @Value("${spring.redis.jedis.pool.test_on_borrow}") private boolean testOnBorrow; @Value("${spring.redis.jedis.pool.test_while_idle}") private boolean testWhileIdle; @Bean public JedisConnectionFactory redisConnectionFactory() { log.info("Create JedisConnectionFactory,host:{},port:{},password:{}", host, port, password); RedisStandaloneConfiguration rf = new RedisStandaloneConfiguration(); rf.setDatabase(database); rf.setHostName(host); rf.setPort(port); rf.setPassword(RedisPassword.of(password)); JedisClientConfiguration.JedisPoolingClientConfigurationBuilder jpb = (JedisClientConfiguration.JedisPoolingClientConfigurationBuilder) JedisClientConfiguration .builder(); jpb.poolConfig(redisPoolConfig()); JedisConnectionFactory jedisConnectionFactory &#