2020.8.19 解决Spring boot 中 使用redis进行缓存时乱码的问题

关于springboot 中使用 redis缓存的详细介绍,可以看我的文章:
Spring Boot学习笔记(十七)整合 mysql、mybatis-plus 使用redis进行缓存


解决办法很简单,添加一个配置文件即可,文件路径没有什么要求,因为 spring boot是根据 @Configuration 注解来进行配置
在这里插入图片描述
重点的代码是:RedisSerializer.string()RedisSerializer.json()

@Configuration
public class RedisConfig {
// name 可配可不配
	@Bean(name="redisTemplate")
	public RedisTemplate<String, String> redisTemplate(RedisConnectionFactory factory) {

		RedisTemplate<String, String> template = new RedisTemplate<>();

		template.setConnectionFactory(factory);
		//key序列化方式
		template.setKeySerializer(RedisSerializer.string());
		//value序列化
		template.setValueSerializer(RedisSerializer.json());
//		//value hashmap序列化
		template.setHashValueSerializer(RedisSerializer.json());

		return template;
	}
// name 可配可不配
	@Bean(name="cacheManager ")
	public CacheManager cacheManager(RedisConnectionFactory factory) {
		// 配置序列化
		RedisCacheConfiguration config = RedisCacheConfiguration.defaultCacheConfig();
		RedisCacheConfiguration redisCacheConfiguration = config.serializeKeysWith(RedisSerializationContext.SerializationPair.fromSerializer(RedisSerializer.string()))
				.serializeValuesWith(RedisSerializationContext.SerializationPair.fromSerializer(RedisSerializer.json()));


		RedisCacheManager cacheManager = RedisCacheManager.builder(factory)
				.cacheDefaults(redisCacheConfiguration)
				.build();
		return cacheManager;
	}
}

结果如下,读写均可
在这里插入图片描述

你可能感兴趣的:(踩坑排错,#,Spring,Boot,redis)