Redis
 sql >> डेटाबेस >  >> NoSQL >> 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" का उपयोग कर रहा हूं। मान उत्पन्न करने के लिए मैं अपने डेटा को JsonValue में बदलने के लिए "Jackson2JsonRedisSerializer" का उपयोग कर रहा हूं।

अब, मेरी कुंजियों में "अजीब" वर्ण नहीं हैं।



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. रनटाइम चेतावनी:आप कार्यकर्ता को सुपरयुसर विशेषाधिकारों के साथ चला रहे हैं:यह बिल्कुल अनुशंसित नहीं है

  2. क्या Redis 6 मल्टी-कोर CPU का लाभ उठा सकता है?

  3. पायथन - कैसे जांचें कि रेडिस सर्वर उपलब्ध है या नहीं?

  4. रेडिस:मैं अपने हैश को चाबियों से कैसे क्रमबद्ध कर सकता हूं?

  5. रेडिस प्रबंधित पब/सब सर्वर