Redis
 sql >> डेटाबेस >  >> NoSQL >> Redis

RedisTemplate का उपयोग करके Redis से सेट मान प्राप्त करें

संक्षेप में

आपको धारावाहिकों को कॉन्फ़िगर करना होगा।

स्पष्टीकरण

रेडिस टेम्पलेट कुंजी, मान और हैश कुंजी/मानों के लिए धारावाहिकों का उपयोग करता है। जावा इनपुट को रेडिस में संग्रहीत प्रतिनिधित्व में बदलने के लिए सीरियलाइज़र का उपयोग किया जाता है। यदि आप कुछ भी कॉन्फ़िगर नहीं करते हैं, तो सीरियलाइज़र डिफ़ॉल्ट रूप से JdkSerializationRedisSerializer पर आ जाता है। . इसलिए यदि आप एक कुंजी मांगते हैं key आपके जावा कोड में, सीरिएलाइज़र इसे

. में बदल देता है
"\xac\xed\x00\x05t\x00\x03key"

और स्प्रिंग डेटा रेडिस उन बाइट्स का उपयोग रेडिस को क्वेरी करने की कुंजी के रूप में करता है।

आप स्प्रिंग डेटा रेडिस के साथ डेटा जोड़ सकते हैं और redis-cli . का उपयोग करके इसे क्वेरी कर सकते हैं :

template.boundSetOps("myKey").add(new Date());

और फिर redis-cli . में

127.0.0.1:6379> keys *
1) "\xac\xed\x00\x05t\x00\x05myKey"
127.0.0.1:6379> SMEMBERS "\xac\xed\x00\x05t\x00\x05myKey"
1) "\xac\xed\x00\x05sr\x00\x0ejava.util.Datehj\x81\x01KYt\x19\x03\x00\x00xpw\b\x00\x00\x01N\xcf#\x9cHx"

जैसा कि आप देखते हैं, स्ट्रिंग और दिनांक कुछ पागल बाइट्स में क्रमबद्ध हैं जो जावा-सीरियलाइज्ड ऑब्जेक्ट का प्रतिनिधित्व करते हैं।

आपका कोड बताता है कि आप स्ट्रिंग-आधारित कुंजियों और मानों को संग्रहीत करना चाहते हैं। बस StringRedisSerializer सेट करें आपके RedisTemplate . में

जावा कॉन्फ़िगरेशन

redisTemplate.setKeySerializer(new StringRedisSerializer());
redisTemplate.setValueSerializer(new StringRedisSerializer());

XML कॉन्फ़िगरेशन

<bean id="stringSerializer" class="org.springframework.data.redis.serializer.StringRedisSerializer"/>

<bean id="redisTemplate" class="org.springframework.data.redis.core.RedisTemplate" 
    p:connection-factory-ref="jedisConnectionFactory">
    <property name="keySerializer" ref="stringSerializer"/>
    <property name="valueSerializer" ref="stringSerializer"/>
</bean>

<bean id="jedisConnectionFactory" class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory" 
    p:host-name="myhostname" p:port="6379"/>

आपका कोड चलाने के बाद आउटपुट तब जैसा दिखता है:

value
key
[value]

स्प्रिंग डेटा रेडिस में कुछ दिलचस्प धारावाहिक हैं जो विभिन्न प्रणालियों के बीच संदेशों के आदान-प्रदान की अनुमति देते हैं। आप अंतर्निर्मित धारावाहिकों में से किसी एक को चुन सकते हैं

  • JacksonJsonRedisSerializer
  • Jackson2JsonRedisSerializer
  • JdkSerializationRedisSerializer (डिफ़ॉल्ट)
  • OxmSerializer
  • GenericToStringSerializer

या अपना खुद का बनाएं।

मैंने आपके प्रश्न के परिणाम को सत्यापित करने के लिए स्प्रिंग डेटा रेडिस 1.5.1.रिलीज और जेडिस 2.6.2 का उपयोग किया। एचटीएच, मार्क

आगे पढ़ें:

  • स्प्रिंग डेटा रेडिस:सीरियलाइज़र
  • आपके उदाहरण का सार


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. लुआ स्क्रिप्ट ब्लॉक रेडिस-सर्वर क्यों?

  2. रेडिस 'डंप' और 'रीस्टोर' (ऑफलाइन) का उपयोग कैसे करें?

  3. साइडकीक काम करने की स्थिति

  4. रेडिस में अपना डेटाबेस कैसे बनाएं?

  5. रेडिस - क्रूड रिपोजिटरी सेव पर कुंजी HASH और SET और ZSET कैसे संबंधित हैं?