संक्षेप में
आपको धारावाहिकों को कॉन्फ़िगर करना होगा।
स्पष्टीकरण
रेडिस टेम्पलेट कुंजी, मान और हैश कुंजी/मानों के लिए धारावाहिकों का उपयोग करता है। जावा इनपुट को रेडिस में संग्रहीत प्रतिनिधित्व में बदलने के लिए सीरियलाइज़र का उपयोग किया जाता है। यदि आप कुछ भी कॉन्फ़िगर नहीं करते हैं, तो सीरियलाइज़र डिफ़ॉल्ट रूप से 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 का उपयोग किया। एचटीएच, मार्क
आगे पढ़ें:
- स्प्रिंग डेटा रेडिस:सीरियलाइज़र
- आपके उदाहरण का सार