अच्छा संपीड़न प्राप्त करने के लिए एक व्यावहारिक तरीका भी बहुत छोटे तार के लिए, नहीं है (50 बाइट्स!) -
यदि आपका मान कुछ हद तक एक दूसरे के समान हैं - उदाहरण के लिए, वे कुछ संबंधित की JSON निरूपण कर रहे हैं वस्तुओं के वर्ग - आप कुछ उदाहरण पाठ के आधार पर एक कंप्रेसर/डिकंप्रेसर शब्दकोश का प्रीकंप्यूट कर सकते हैं।
यह जटिल लगता है, लेकिन यह अभ्यास में आसान है - और इसे संभालने के लिए सही रैपर कोड के साथ अभी भी सरल है।
यहाँ एक अजगर कार्यान्वयन है:
https://github.com/internetarchive/openlibrary/blob/master/openlibrary/utils/compress.py
और यहाँ तार की एक विशेष वर्ग को संपीड़ित करने के लिए एक आवरण है: (लघु JSON रिकॉर्ड)
https://github.com/internetarchive/openlibrary/blob/master/openlibrary/utils/olcompress.py
एक पकड़: यह करने के लिए कुशलतापूर्वक, आपकी संपीड़न लाइब्रेरी को आंतरिक स्थिति 'क्लोनिंग' का समर्थन करना चाहिए। (पायथन लाइब्रेरी करता है) आप संपीड़न करते समय उदाहरण पाठ को प्रीपेड करके कुछ ऐसा ही कार्यान्वित कर सकते हैं, लेकिन इसका मतलब अतिरिक्त गणना लागत का भुगतान करना है।
इस अद्भुत चाल के लिए हल करने के लिए धन्यवाद।
स्रोत
2012-03-24 00:01:58
मुझे यह बेंचमार्क मिला है (http://dev.mensfeld.pl/2013/04/compressing-large-data-sets-in-redis-with-gzip-ruby-test-case/) बहुत उपयोगी और [इन अतिरिक्त विचारों] (http://nosql.mypopescu.com/post/46926679137/compressing-large-data-sets-in-redis-with-gzip) साथ ही साथ। – robert4