使用
StringRedisTemplate.delete(key)
删除缓存数据失败,原因是序列化问题导致。
需要把key和hash都使用String的序列化方式
解决方法:
创建一个新的配置类:
@Configuration
public class RedisConfig {
/**
* 自定义Key为String类型Value为Object类型的Redis操作模板
*/
@Bean
public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory){
RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();
redisTemplate.setConnectionFactory(redisConnectionFactory);
// key采用String的序列化方式
redisTemplate.setKeySerializer(new StringRedisSerializer());
// hash的key也采用String的序列化方式
redisTemplate.setHashKeySerializer(new StringRedisSerializer());
return redisTemplate;
}
}
重启项目后生效。
标签:缓存,SpringBoot,redis,RedisTemplate,key,new,序列化,redisTemplate,String From: https://www.cnblogs.com/Hello233/p/16773266.html