Discuss / Java / 这也太麻烦了,我看的教程直接配置好RedisTemplate后,用它就能操作redis

这也太麻烦了,我看的教程直接配置好RedisTemplate后,用它就能操作redis

Topic source

使用示例:

redisTemplate.opsForValue().set();
redisTemplate.opsForHash().put();
redisTemplate.opsForList().leftPush();
redisTemplate.opsForSet().add();
redisTemplate.opsForZSet().add(); 

配置方式(需要导入spring-boot-starter-data-redis ,jackson-core 和jackson-databind,后两个包是为了替代spring提供的redis的默认序列化方式,默认序列化方式会让通过网络连接传入key和value时,出现多余的符号和乱码,必须替代掉):

@Configurationpublic 
class RedisConfig {

  @Bean
  public RedisTemplate redisTemplate(RedisConnectionFactory redisConnectionFactory){
    RedisTemplate redisTemplate = new RedisTemplate();
    redisTemplate.setConnectionFactory(redisConnectionFactory);
    //定制化模板
    //设置key的序列化方式
    StringRedisSerializer stringRedisSerializer = newStringRedisSerializer(); 
    redisTemplate.setKeySerializer(stringRedisSerializer);
    // 设置value JackSon序列列化⽅方式 
    Jackson2JsonRedisSerializer jsonRedisSerializer = newJackson2JsonRedisSerializer(Object.class);
    ObjectMapper objectMapper = new ObjectMapper(); 
    // 对于不不是基本类型的变量量显示全类名(设置全类名是为了反序列化时正确解析对象)
    objectMapper.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL); 
    //设置值的属性可⻅见 
    objectMapper.setVisibility(PropertyAccessor.ALL,JsonAutoDetect.Visibility.ANY); 
    jsonRedisSerializer.setObjectMapper(objectMapper);
    redisTemplate.setValueSerializer(jsonRedisSerializer);
    return redisTemplate; 
  }
}

不过目前实际用的最多的还是redisson吧


  • 1

Reply