解决:redis 在终端使用get key命令获取不到value
记第一次使用springboot集成redis1、首先在pom文件中添加redis依赖:<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency&
·
记第一次使用springboot集成redis
1、首先在pom文件中添加redis依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
2、在application.yml中配置redis:
redis:
port: 6379
host: 127.0.0.1
timeout: 1000
lettuce:
pool:
min-idle: 5
max-idle: 10
max-wait: -1
3、在controller中使用redis模板,测试添加缓存和获取缓存功能:
@Autowired
private RedisTemplate redisTemplate;
//通过key获取缓存value
@GetMapping("/redis/get/{key}")
public Object get(@PathVariable("key") String key){
return redisTemplate.opsForValue().get(key);
}
//添加缓存的key、value
@PostMapping("/redis/set/{key}/{value}")
public Object set(@PathVariable("key") String key,
@PathVariable("value") String value){
redisTemplate.opsForValue().set(key,value);
return "success";
}
4、开始测试:
使用postman输入地址进行测试:
添加:
查询:
操作成功!!
But当我在cmd终端查询时却查不到!
随即查看了所有key
原来是因为没有序列化!
解决:添加一个java的config文件:
@Configuration
public class ApplicationConfig {
@Bean
public RedisTemplate<String, Object> redisTemplate (RedisConnectionFactory factory) {
RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();
redisTemplate.setConnectionFactory(factory);
Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new
Jackson2JsonRedisSerializer(Object.class);
redisTemplate.setValueSerializer(jackson2JsonRedisSerializer);
redisTemplate.setKeySerializer(new StringRedisSerializer());
return redisTemplate;
}
}
现在查询post,再去终端查询就可以查到啦:
更多推荐
已为社区贡献1条内容
所有评论(0)