sql >> Databasteknik >  >> NoSQL >> Redis

Spring boot + Redis - Genererar en konstig nyckel

Jag löste mitt problem. Jag sökte och hittade det här inlägget.

Jag ändrade min kod för att använda vissa egenskaper hos 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 är att standard Serializer är "JdkSerializationRedisSerializer", nu använder jag "StringRedisSerializer" för att generera en nyckel. För att generera värde använder jag "Jackson2JsonRedisSerializer" för att omvandla mina data till JsonValue.

Nu har mina nycklar inte de "konstiga" tecknen.



  1. Få tillgång till MongoDB direkt via JavaScript

  2. Minneseffektivt sätt att lagra 32-bitars signerat heltal i Redis

  3. Azure Function med Cosmos MongoDB-integration sparas inte

  4. Spring Data Redis Expire Key