springboot redistemplate值有 x00数据

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了springboot redistemplate值有 x00数据相关的知识,希望对你有一定的参考价值。

我使用springboot 1.5.9和redis-template。但是当我将数据保存到redis时,我发现值是错误的。如下所示:0 x00 x00 x00 x00 x00 x00 x00 x00 x00 x00 x00 x00 x00 x00 x00 x00 x00 x00 x00 x00 x00 x00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 X00 [{ “ID ”:1, “名” :“R andomName1512028732904 ”, “薪水”:12.34},{ “ID ”:2, “名称”: “RandomName1512028735366 ”, “薪水”:12.34},{ “ID ”: 3, “名称”: “RandomName1512028738439 ”, “薪水”:12.34},{ “ID ”:4, “名称”: “RandomName1512028750450 ”, “薪水”: 12.34},{ “ID ”:5, “名称”: “RandomName1512031361305 ”, “薪水”:12.34},{ “ID ”:6, “名称”:” RandomName1512031361972 “ ”薪水“:12.34},{ ”ID “:7, ”名称“: ”1512116645365 “, ”薪水“:12.34}]”

redisTemplate.opsForValue()。set(“indexCache”,data,10000);如何将纯json保存到redis ???

@Configuration公共类RedisConfig {

@Bean
public RedisTemplate<String, String> redisTemplate(RedisConnectionFactory redisConnectionFactory) {
    RedisTemplate<String, String> redisTemplate = new RedisTemplate<>();
    redisTemplate.setConnectionFactory(redisConnectionFactory);

    Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class);

    ObjectMapper objectMapper = new ObjectMapper();
    objectMapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
    //objectMapper.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);
    objectMapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"));

    jackson2JsonRedisSerializer.setObjectMapper(objectMapper);

    redisTemplate.setKeySerializer(new StringRedisSerializer());
    redisTemplate.setValueSerializer(jackson2JsonRedisSerializer);
    redisTemplate.setHashKeySerializer(new StringRedisSerializer());
    redisTemplate.setHashValueSerializer(jackson2JsonRedisSerializer);
    redisTemplate.afterPropertiesSet();
    return redisTemplate;
}

}

答案
redisTemplate.opsForValue().set("indexCache", data, 10000); 

实际上,这种方法有四个参数。

redisTemplate.opsForValue().set("indexCache", data, 10000,TimeUnits.Seconds); 

以上是关于springboot redistemplate值有 x00数据的主要内容,如果未能解决你的问题,请参考以下文章

SpringBoot中注入RedisTemplate实例异常解决

springboot2.1.3 + redisTemplate 操作 redis 3.0.5

springboot使用redisTemplate遇到的问题

SpringBoot使用RedisTemplate整合Redis缓存

在SpringBoot中注入RedisTemplate怎么实现实例异常解决

Springboot redis 缓存使用示例 | RedisTemplate