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

स्प्रिंग-डेटा-रेडिस रेडिस टेम्पलेट अपवाद

डिफ़ॉल्ट रूप से, RedisTemplate एक JdkSerializationRedisSerializer का उपयोग करता है, इसलिए यदि आपने एक "सेट" किया है, तो यह Redis में आपके लॉन्ग लुक को कुछ इस तरह बना देगा:

"\xac\xed\x00\x05sr\x00\x0ejava.lang.Long;\x8b\xe4\x90\xcc\x8f#\xdf\x02\x00\x01J\x00\x05valuexr\x00\x10java.lang.Number\x86\xac\x95\x1d\x0b\x94\xe0\x8b\x02\x00\x00xp\x00\x00\x00\x00\x00\x00\x00\x04"

IncrBy काम करता है क्योंकि Redis हमेशा उस ऑपरेशन से एक Long लौटाता है, इसलिए RedisTemplate परिणाम को deserialize करने का प्रयास नहीं करता है। हालांकि, "प्राप्त करें" का परिणाम अक्रमांकन प्रक्रिया से गुजरता है, जो ऊपर दिए गए प्रारूप की अपेक्षा करता है।

आप इसे अपने RedisTemplate पर एक भिन्न मान सीरिएलाइज़र का उपयोग करके हल कर सकते हैं:

redisTemplate.setValueSerializer(new GenericToStringSerializer<Long>(Long.class));

या स्प्रिंग-डेटा-रेडिस के साथ आने वाले RedisAtomicLong क्लास को आज़माएं।



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. डोकर रेल शुरू करने में विफल

  2. रेडिस डेटाबेस में एचएसईटी और एचएमएसईटी पद्धति में क्या अंतर है

  3. जावा बाइट्स को बाइनरी सेफ स्ट्रिंग में बदलें

  4. Node.js, Redis और Socket.io का उपयोग करके कैशिंग ट्वीट्स

  5. रेडिस व्यू डेस्कटॉप