Deklarieren Sie eine Serialisierungsklasse, die einen bestimmten Typ (BaseCurrentUser) verarbeitet
@Bean
Jackson2JsonRedisSerializer<BaseCurrentUser> jackson2JsonRedisSerializer(ObjectMapper objectMapper) {
Jackson2JsonRedisSerializer<BaseCurrentUser> jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer<BaseCurrentUser>(
BaseCurrentUser.class);
jackson2JsonRedisSerializer.setObjectMapper(objectMapper);
return jackson2JsonRedisSerializer;
}
@Bean
RedisTemplate<String, BaseCurrentUser> currentUserRedisTemplate(JedisConnectionFactory connectionFactory,
Jackson2JsonRedisSerializer<BaseCurrentUser> jackson2JsonRedisSerializer) {
RedisTemplate<String, BaseCurrentUser> redisTemplate = new RedisTemplate<>();
redisTemplate.setConnectionFactory(connectionFactory);
redisTemplate.setDefaultSerializer(jackson2JsonRedisSerializer);
StringRedisSerializer stringRedisSerializer = new StringRedisSerializer();
redisTemplate.setKeySerializer(stringRedisSerializer);
redisTemplate.setHashKeySerializer(stringRedisSerializer);
return redisTemplate;
}
Wird in der Serviceklasse verwendet
@Autowired
private RedisTemplate<String, BaseCurrentUser> currentUserRedisTemplate;
Also muss ich jedes Mal, wenn ich einen Speichertyp hinzufüge, einen Satz @Bean hinzufügen??? Oder ich weiß nicht, wie ich es verwenden soll? Verwenden Sie nur das StringRedisTemplate und verwenden Sie fastjson bei jeder Serialisierung manuell
在.xml中配置redis(包括集群、序列化),在类中注入RedisTemplate,使用异步回调的方式操作redis(或者直接操作)
RedisTemplate