使用 Spring data redis 结合 Spring cache 缓存数据配置

时间:2023-01-27 20:37:16

使用 JavaConfig 方式配置

依赖 jar 包: jedis、spring-data-redis 

首先需要进行 Redis 相关配置

@Configuration
public class RedisConfig {

@Bean
public JedisPoolConfig poolConfig() {
JedisPoolConfig poolConfig
= new JedisPoolConfig();
poolConfig.setMaxTotal(
10);
poolConfig.setMaxIdle(
1);
return poolConfig;
}

@Bean
public RedisConnectionFactory redisConnectionFactory(JedisPoolConfig poolConfig) {
JedisConnectionFactory cf
= new JedisConnectionFactory();
cf.setHostName(
"localhost");
cf.setPort(
6379);
// cf.setPassword("XXX");
cf.setPoolConfig(poolConfig);
return cf;
}

@Bean
public RedisTemplate redisTemplate(RedisConnectionFactory redisConnectionFactory) {
RedisTemplate redisTemplate
= new RedisTemplate();
redisTemplate.setConnectionFactory(redisConnectionFactory);

// 如果 key 确定使用 String 类型,可以使用这个序列化类,方便查看
// redisTemplate.setKeySerializer(new StringRedisSerializer());
// value 的序列化默认使用 JdkSerializationRedisSerializer

redisTemplate.afterPropertiesSet();
return redisTemplate;
}
}

 

之后需要进行 Spring Cache 的配置

@Configuration
// 启用缓存
@EnableCaching
// 引用 Redis 的配置
@Import({RedisConfig.class})
public class CacheConfig {
@Bean
public CacheManager cacheManager(RedisTemplate redisTemplate) {
RedisCacheManager cacheManager
= new RedisCacheManager(redisTemplate);
// 设置过期时间
cacheManager.setDefaultExpiration(60);
return cacheManager;
}
}

 

注意: 要进行缓存的类必须实现 Serializable 接口