闲话不说, 直接上代码
package com.popo.core.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer;
import org.springframework.data.redis.serializer.RedisSerializer;
import org.springframework.data.redis.serializer.StringRedisSerializer;
@Configuration
public class RedisConfig {
@Bean
public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) {
RedisTemplate<String, Object> template = new RedisTemplate<>();
template.setConnectionFactory(redisConnectionFactory);
// 设置序列化方式
RedisSerializer<String> stringSerializer = new StringRedisSerializer();
RedisSerializer<Object> jsonSerializer = new GenericJackson2JsonRedisSerializer();
template.setKeySerializer(stringSerializer);
template.setValueSerializer(jsonSerializer);
template.setHashKeySerializer(stringSerializer);
template.setHashValueSerializer(jsonSerializer);
return template;
}
}
注意:
- 可以在redis-cli后台使用
monitor
命令进入实时监控模式 - 需保证配置类不被
@ComponentScan
排除在外, 例如以下代码就会导致配置不生效:
@ComponentScan(basePackageClasses = {CoreApplication.class, GatewayApplication.class},
excludeFilters = @ComponentScan.Filter(type = FilterType.REGEX, pattern = "com.popo.core.config.*"))