Redis
 sql >> Baza danych >  >> NoSQL >> Redis

Spring boot + Redis - Generowanie dziwnego klucza

Mój problem został rozwiązany.Szukałem i znalazłem ten post.

Zmieniłem kod, aby używać niektórych właściwości 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);
}    

Problem polega na tym, że domyślny serializator to „JdkSerializationRedisSerializer”, teraz do generowania klucza używam „StringRedisSerializer”. Aby wygenerować wartość, używam „Jackson2JsonRedisSerializer” do przekształcenia moich danych w JsonValue.

Teraz moje klawisze nie mają „dziwnych” znaków.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Powiadomienia Redis Keyspace z flushdb

  2. Jak wdrożyć node.js z redis na Kubernetes?

  3. Jak utworzyć połączenie Redis z Master i Slave?

  4. Jak mogę znaleźć rozmiar tematu redis (podzbiór kluczy)?

  5. docker-compose:połączenie redis odrzucone między kontenerami