如果指定序列化方式则默认会使用JDK序列化,会让缓存的数据难于阅读
@Bean(name = "strFreezeMapTemplate")
public RedisTemplate<String, Map<Long, CategoryFreezeInfo>> strFreezeMapTemplate(RedisConnectionFactory redisConnectionFactory) {
RedisTemplate<String, Map<Long, CategoryFreezeInfo>> template = new RedisTemplate<>();
template.setConnectionFactory(redisConnectionFactory);
//这对应的是key的序列化方式设置,如果不设置则默认是jdk序列化
template.setKeySerializer(new StringRedisSerializer());
//对应hashKey的序列化方式这种,如果不设置则默认是jdk序列化
template.setHashKeySerializer(new StringRedisSerializer());
//对应hashValue的序列化方式,如果不设置则默认是jdk序列化
template.setHashValueSerializer(new Jackson2JsonRedisSerializer<>(CategoryFreezeInfo.class));
return template;
}
@Bean(name = "strListMapTemplate")
public RedisTemplate<String, Map<String, List<String>>> strListMapTemplate(RedisConnectionFactory redisConnectionFactory) {
RedisTemplate<String, Map<String, List<String>>> template = new RedisTemplate<>();
template.setConnectionFactory(redisConnectionFactory);
template.setKeySerializer(new StringRedisSerializer());
template.setHashKeySerializer(new StringRedisSerializer());
template.setHashValueSerializer(new Jackson2JsonRedisSerializer<>(List.class));
return template;
}
@Bean(name = "strListTemplate")
public RedisTemplate<String, List<String>> strListTemplate(RedisConnectionFactory redisConnectionFactory) {
RedisTemplate<String, List<String>> template = new RedisTemplate<>();
template.setConnectionFactory(redisConnectionFactory);
template.setKeySerializer(new StringRedisSerializer());
template.setValueSerializer(new Jackson2JsonRedisSerializer(List.class));
return template;
}
没有指定序列的Redis缓存数据,如图:
设置序列化后的Redis缓存数据,如图:
下面是泛型配置
@Bean(name = "strListTemplate")
public <V extends Serializable> RedisTemplate<String, List<V>> strListTemplate(RedisConnectionFactory redisConnectionFactory) {
RedisTemplate<String, List<V>> template = new RedisTemplate<>();
template.setConnectionFactory(redisConnectionFactory);
template.setKeySerializer(new StringRedisSerializer());
template.setValueSerializer(new Jackson2JsonRedisSerializer(List.class));
return template;
}
@Bean(name = "strTemplate")
public <V extends Serializable> RedisTemplate<String, V> strTemplate(RedisConnectionFactory redisConnectionFactory) {
RedisTemplate<String, V> template = new RedisTemplate<>();
template.setConnectionFactory(redisConnectionFactory);
template.setKeySerializer(new StringRedisSerializer());
template.setValueSerializer(new Jackson2JsonRedisSerializer(List.class));
return template;
}
@Bean(name = "strMapTemplate")
public <HK extends Serializable, V extends Serializable> RedisTemplate<String, Map<HK, V>> strMapTemplate(RedisConnectionFactory redisConnectionFactory) {
RedisTemplate<String, Map<HK, V>> template = new RedisTemplate<>();
template.setConnectionFactory(redisConnectionFactory);
template.setKeySerializer(new StringRedisSerializer());
template.setValueSerializer(new Jackson2JsonRedisSerializer(List.class));
return template;
}