sql >> Database >  >> NoSQL >> Redis

Spring boot + Redis - Een vreemde sleutel genereren

Ik heb mijn probleem opgelost. Ik was aan het zoeken en vond dit bericht.

Ik heb mijn code gewijzigd om enkele eigenschappen van RedisTemplate te gebruiken:

@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);
}    

Het probleem is omdat de standaard Serializer "JdkSerializationRedisSerializer" is. Nu gebruik ik "StringRedisSerializer" om een ​​sleutel te genereren. Om waarde te genereren, gebruik ik "Jackson2JsonRedisSerializer" om mijn gegevens in JsonValue te transformeren.

Nu hebben mijn sleutels geen "vreemde" tekens.



  1. Verwijder meerdere documenten van mongo in een enkele zoekopdracht

  2. Wat is de gemakkelijkste manier om de grootste objecten in Redis te vinden?

  3. Node.js mongodb-stuurprogramma async/wacht op vragen

  4. best practice van django + PyMongo pooling?