您现在的位置是:网站首页> 编程资料编程资料

Redis key-value乱码的解决_Redis_

2023-05-27 424人已围观

简介 Redis key-value乱码的解决_Redis_

redis 配置类

import com.fasterxml.jackson.annotation.JsonAutoDetect; import com.fasterxml.jackson.annotation.PropertyAccessor; import com.fasterxml.jackson.databind.ObjectMapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.SpringBootConfiguration; import org.springframework.cache.CacheManager; import org.springframework.cache.annotation.CachingConfigurerSupport; import org.springframework.context.annotation.Bean; import org.springframework.data.redis.cache.RedisCacheManager; import org.springframework.data.redis.connection.RedisConnectionFactory; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer; import org.springframework.data.redis.serializer.StringRedisSerializer; @SpringBootConfiguration public class RedisConfig extends CachingConfigurerSupport {     /**      * 注入 RedisConnectionFactory      */     @Autowired     private RedisConnectionFactory redisConnectionFactory;     @Bean     public CacheManager cacheManager(RedisConnectionFactory factory) {         return RedisCacheManager.builder(factory).build();     }     @Bean     public RedisTemplate functionDomainRedisTemplate() {         RedisTemplate redisTemplate = new RedisTemplate<>();         redisTemplate.setConnectionFactory(redisConnectionFactory);         // 使用Jackson2JsonRedisSerialize 替换默认序列化         Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class);         ObjectMapper objectMapper = new ObjectMapper();         objectMapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);         objectMapper.activateDefaultTyping(objectMapper.getPolymorphicTypeValidator(), ObjectMapper.DefaultTyping.NON_FINAL);         jackson2JsonRedisSerializer.setObjectMapper(objectMapper);         // 设置value的序列化规则和 key的序列化规则         StringRedisSerializer stringRedisSerializer = new StringRedisSerializer();         redisTemplate.setKeySerializer(stringRedisSerializer);         redisTemplate.setHashKeySerializer(stringRedisSerializer);         redisTemplate.setValueSerializer(jackson2JsonRedisSerializer);         redisTemplate.setHashValueSerializer(jackson2JsonRedisSerializer);         redisTemplate.afterPropertiesSet();         return redisTemplate;     } }

当使用opsForValue() 存取String类型key,value情形

 @Autowired private StringRedisTemplate redisTemplate;

当使用opsForValue() 存取String类型key,自定义对象value情形

 @Autowired private RedisTemplate redisTemplate;

当使用hash结构时

 @Autowired private RedisTemplate redisTemplate; 
BoundHashOperations ops = redisTemplate.boundHashOps("key1"); ops.put("key2",obj); 

到此这篇关于Redis key-value乱码的解决的文章就介绍到这了,更多相关Redis key-value乱码内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!

-六神源码网