sql >> Database teknologi >  >> NoSQL >> Redis

Spring boot + Redis - Genererer en mærkelig nøgle

Jeg løste mit problem. Jeg søgte og fandt dette indlæg.

Jeg ændrede min kode for at bruge nogle egenskaber for 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);
}    

Problemet er, fordi standard Serializer er "JdkSerializationRedisSerializer", nu bruger jeg "StringRedisSerializer" til at generere en nøgle. For at generere værdi bruger jeg "Jackson2JsonRedisSerializer" til at transformere mine data i JsonValue.

Nu har mine nøgler ikke de "mærkelige" tegn.



  1. Azure Redis Cache max forbindelser nået

  2. Hvorfor har vi brug for, hvilke fordele at bruge mongoose

  3. Ønsker at implementere web-sockets i Laravel

  4. Plotning af staters navn på kortet ved hjælp af Node js og D3 i realtid