1、在pom.xml中导入坐标
<!--redis-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<!--common-pool2-->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-pool2</artifactId>
</dependency>
2、测试是否整合成功(控制台打印出数据)
@Autowired
private RedisTemplate<Object,Object> redisTemplate;
@Test
void testRedis(){
System.out.println("redisTemplate = " + redisTemplate);
redisTemplate.opsForValue().set("name","zs",Duration.ofSeconds(30));
System.out.println("redisTemplate.opsForValue().get(\"name\") = " + redisTemplate.opsForValue().get("name"));
}
3、为了解决Redis提供的默认序列化方式会出现乱码问题,需要创建RedisConfig配置类重写序列化方式
@Bean
public RedisTemplate<String,Object> redisTemplate(RedisConnectionFactory factory){
RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();
redisTemplate.setConnectionFactory(factory);
//默认的是JDK序列化,导致key和value都不是很直观
redisTemplate.setKeySerializer(new StringRedisSerializer());
redisTemplate.setValueSerializer(new StringRedisSerializer());
return redisTemplate;
}
4、再次测试一下,会报错
org.springframework.beans.factory.UnsatisfiedDependencyException:
Error creating bean with name 'com.hubu.redisdemo.RedisDemoApplicationTests':
Unsatisfied dependency expressed through field 'redisTemplate';
nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException:
No qualifying bean of type 'org.springframework.data.redis.core.RedisTemplate<java.lang.Object, java.lang.Object>' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
只需要将RedisTemplate<Object,Object>换成RedisTemplate<String,Object>即可