Redis
 sql >> Teknologi Basis Data >  >> NoSQL >> Redis

Spring boot + Redis - Menghasilkan kunci aneh

Saya memecahkan masalah saya. Saya sedang mencari dan menemukan posting ini.

Saya mengubah kode saya untuk menggunakan beberapa properti 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);
}    

Masalahnya adalah karena Serializer default adalah "JdkSerializationRedisSerializer", sekarang saya menggunakan "StringRedisSerializer" untuk menghasilkan kunci. Untuk menghasilkan nilai, saya menggunakan "Jackson2JsonRedisSerializer" untuk mengubah data saya di JsonValue.

Sekarang, kunci saya tidak memiliki karakter "aneh".



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Batasi panjang daftar dalam redis

  2. Siaran pesan gagal-aman untuk dikonsumsi oleh penerima tertentu menggunakan redis dan python

  3. Berbagi soket melalui instance nodeJS yang terpisah

  4. Kesalahan tidak terikat elemen Integrasi JHipster Redis

  5. hitung jumlah sesi di connect-redis