1
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency>
yml配置
redis:
host: 127.0.0.1
name: ce
port: 6379
database: 0
jedis:
pool:
max-active: 8 # 最大连接数
max-wait: 1ms # 最大阻塞时间
max-idle: 4
min-idle: 0
2 实体序列化
public class Books implements Serializable {
3. 启动类加
@Bean
public CacheManager cacheManager(RedisConnectionFactory factory) {
// RedisCacheConfiguration config = RedisCacheConfiguration.defaultCacheConfig();
// config = config.entryTtl(Duration.ofMinutes(60*60*24*4));
//
// // 设置一个初始化的缓存空间set集合
// Set <String> cacheNames = new HashSet <>();
// cacheNames.add("test");
//
// // 对每个缓存空间应用不同的配置
// Map <String, RedisCacheConfiguration> configMap = new HashMap <>();
// configMap.put("test", config.entryTtl(Duration.ofSeconds(60*60*24*4)));
return RedisCacheManager.builder(RedisCacheWriter.nonLockingRedisCacheWriter(factory))
// 默认缓存过期时间:天
.cacheDefaults(RedisCacheConfiguration.defaultCacheConfig().entryTtl(Duration.ofDays(30)))
.transactionAware()
.build();
}
@Bean
public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory factory) {
RedisTemplate<String, Object> template = new RedisTemplate<>();
template.setConnectionFactory(factory);
ObjectMapper om = new ObjectMapper();
om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);
GenericJackson2JsonRedisSerializer jackson2JsonRedisSerializer = new GenericJackson2JsonRedisSerializer(om);
template.setValueSerializer(jackson2JsonRedisSerializer);
template.setKeySerializer(jackson2JsonRedisSerializer);
template.afterPropertiesSet();
return template;
}
最后使用