हमें कभी-कभी Python ऑब्जेक्ट्स (लिस्ट, डिक्शनरी, स्ट्रिंग, आदि) को कैश में सेव करने से पहले कंप्रेस करने और कैश से पढ़ने के बाद डीकंप्रेस करने की आवश्यकता होती है।
पहले हमें यह सुनिश्चित करना होगा कि हमें वास्तव में ऑब्जेक्ट्स को कंप्रेस करने की आवश्यकता है। हमें चेक करना चाहिए कि डेटा स्ट्रक्चर्स/ऑब्जेक्ट्स अनकंप्रेस्ड होने पर कैश में फिट होने के लिए बहुत बड़े हैं या नहीं। कंप्रेशन/डीकंप्रेशन के लिए ओवरहेड होने वाला है, जिसे हमें पहली जगह में कैशिंग से होने वाले लाभ के साथ ट्रेडऑफ करना होगा।
यदि हमें वास्तव में कंप्रेशन की आवश्यकता है, तो हम शायद `zlib` का उपयोग करना चाहेंगे।
यदि हम `zlib` उपयोग करने जा रहे हैं, तो हम `compress` मेथड में उपलब्ध विभिन्न कंप्रेशन लेवल्स के साथ प्रयोग करना चाहेंगे, ताकि CPU समय बनाम कंप्रेशन लेवल को संतुलित किया जा सके:
`zlib.compress(string[, level])`
स्ट्रिंग में डेटा कंप्रेस करता है, कंप्रेस्ड डेटा समाहित करने वाली स्ट्रिंग लौटाता है। `level` 1 से 9 तक का इंटीजर है जो कंप्रेशन लेवल को नियंत्रित करता है; 1 सबसे तेज है और सबसे कम कंप्रेशन पैदा करता है, 9 सबसे धीमा है और सबसे अधिक कंप्रेशन पैदा करता है। डिफ़ॉल्ट मान 6 है। यदि कोई त्रुटि होती है तो एरर एक्सेप्शन उठाता है।