RedisTemplate默認的序列化方式為jdkSerializeable,會把對象序列化存儲到Redis中(二進制形式),StringRedisTemplate的默認序列化方式為StringRedisSerializer。
通過配置,將RedisTemplate的序列化方式進行更改
1 import org.springframework.context.annotation.Bean; 2 import org.springframework.context.annotation.Configuration; 3 import org.springframework.data.redis.connection.RedisConnectionFactory; 4 import org.springframework.data.redis.core.RedisTemplate; 5 import org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer; 6 import org.springframework.data.redis.serializer.StringRedisSerializer; 7 8 /** 9 * @ClassName:RedisConfig 10 * @Author:微微亮 11 * @Description: 12 * @Date:2020/11/11 20:48 13 * @Version: 1.0 14 */ 15 @Configuration 16 public class RedisConfig { 17 18 @Bean//參數--一個工廠 19 public RedisTemplate redisTemplate(RedisConnectionFactory redisConnectionFactory){ 20 RedisTemplate redisTemplate = new RedisTemplate(); 21 //給redis模板先設置連接工廠,在設置序列化規則 22 redisTemplate.setConnectionFactory(redisConnectionFactory); 23 //設置序列化規則 24 redisTemplate.setKeySerializer(new StringRedisSerializer()); 25 redisTemplate.setValueSerializer(genericJackson2JsonRedisSerializer()); 26 redisTemplate.setHashKeySerializer(genericJackson2JsonRedisSerializer()); 27 redisTemplate.setHashValueSerializer(genericJackson2JsonRedisSerializer()); 28 return redisTemplate; 29 } 30 31 @Bean 32 public GenericJackson2JsonRedisSerializer genericJackson2JsonRedisSerializer(){ 33 return new GenericJackson2JsonRedisSerializer(); 34 } 35 }
這樣在其他代碼中
@Autowired
private RedisTemplate redisTemplate;
就可以自動裝配(注入)使用了。