sql >> Databáze >  >> NoSQL >> Redis

Spring boot + Redis - Generování podivného klíče

Vyřešil jsem svůj problém. Hledal jsem a našel jsem tento příspěvek.

Změnil jsem svůj kód pro použití některých vlastností RedisTemplate:

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

    configureSerializers(redisTemplate);

    JedisConnectionFactory jedisConnectionFactory = (JedisConnectionFactory) cf;
    JedisPoolConfig actualPoolConfig = jedisConnectionFactory.getPoolConfig();
    jedisConnectionFactory.setPoolConfig(createJedisPoolConfig(actualPoolConfig));

    return redisTemplate;
}

private void configureSerializers(RedisTemplate<String, String> redisTemplate) {
    RedisSerializer<String> serializerKey = new StringRedisSerializer();
    redisTemplate.setKeySerializer(serializerKey);
    redisTemplate.setHashKeySerializer(serializerKey);

    Jackson2JsonRedisSerializer<Object> jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer<>(Object.class);
    ObjectMapper om = new ObjectMapper();
    om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
    om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);
    om.configure(
            DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
    jackson2JsonRedisSerializer.setObjectMapper(om);

    redisTemplate.setValueSerializer(jackson2JsonRedisSerializer);
    redisTemplate.setHashValueSerializer(jackson2JsonRedisSerializer);
}    

Problém je v tom, že výchozí serializátor je „JdkSerializationRedisSerializer“, nyní ke generování klíče používám „StringRedisSerializer“. Ke generování hodnoty používám „Jackson2JsonRedisSerializer“ k transformaci mých dat do JsonValue.

Moje klávesy nyní nemají "podivné" znaky.



  1. Jak se dotazovat MongoDB s likem

  2. Víceoborové dotazování na Redis pomocí Redis Spring

  3. MongoDB vs. Cassandra

  4. Potřebujete pomoc s konceptualizací v Redis/NoSQL