Redis
 sql >> база данни >  >> NoSQL >> Redis

Spring boot + Redis - Генериране на странен ключ

Реших проблема си. Търсих и намерих тази публикация.

Промених кода си, за да използвам някои свойства на 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);
}    

Проблемът е, защото сериализаторът по подразбиране е „JdkSerializationRedisSerializer“, сега използвам „StringRedisSerializer“ за генериране на ключ. За генериране на стойност използвам „Jackson2JsonRedisSerializer“, за да трансформирам данните си в JsonValue.

Сега ключовете ми нямат "странните" знаци.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Целина с множество django сайтове

  2. redis - Използване на хешове

  3. Redis py:кога да използваме пул за връзки?

  4. Ruby - Redis базиран мютекс с изпълнение на изтичане

  5. изчакване на redis с predis