使用了@Cacheable注解往redis中添加缓存,但是现在value值是乱码的
时间: 2024-02-22 09:58:54 浏览: 74
如果您在使用 `@Cacheable` 注解将数据存储到 Redis 中时出现了乱码问题,这可能是因为 Redis 默认使用的序列化方式是二进制的,而不是文本的。因此,您可以尝试使用其他的序列化方式,例如 `Jackson2JsonRedisSerializer`,将数据以 JSON 格式存储到 Redis 中。
以下是一个示例:
```java
@Configuration
@EnableCaching
public class RedisConfig extends CachingConfigurerSupport {
@Bean
public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) {
RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();
redisTemplate.setConnectionFactory(redisConnectionFactory);
// 设置 key 和 value 的序列化方式
redisTemplate.setKeySerializer(new StringRedisSerializer());
redisTemplate.setValueSerializer(new Jackson2JsonRedisSerializer<>(Object.class));
// 设置 hash key 和 hash value 的序列化方式
redisTemplate.setHashKeySerializer(new StringRedisSerializer());
redisTemplate.setHashValueSerializer(new Jackson2JsonRedisSerializer<>(Object.class));
return redisTemplate;
}
}
```
在上面的示例中,我们使用了 Jackson 序列化库将对象序列化为 JSON 格式,并将其存储到 Redis 中。您可以根据自己的需求进行调整。
阅读全文