मेमोरी और डंप आकार का अनुपात रेडिस द्वारा आंतरिक रूप से उपयोग किए जाने वाले डेटा प्रकारों पर निर्भर करता है।
छोटी वस्तुओं (हैश, सूचियाँ और सॉर्ट किए गए सेट) के लिए, रेडिस डेटा को एन्कोड करने के लिए ज़िपलिस्ट का उपयोग करता है। पूर्णांकों से बने छोटे सेटों के लिए, रेडिस इनसेट्स का उपयोग करता है। ZipLists और IntSets को डिस्क पर उसी प्रारूप में संग्रहीत किया जाता है जैसे वे मेमोरी में संग्रहीत होते हैं . इसलिए, यदि आपका डेटा इन एन्कोडिंग का उपयोग करता है, तो आप 1:1 के अनुपात की अपेक्षा करेंगे।
बड़ी वस्तुओं के लिए, इन-मेमोरी प्रतिनिधित्व ऑन-डिस्क प्रतिनिधित्व से पूरी तरह से अलग है। ऑन-डिस्क प्रारूप संकुचित है, इसमें पॉइंटर्स नहीं हैं, मेमोरी फ़्रेग्मेंटेशन से निपटने की ज़रूरत नहीं है। इसलिए, यदि आपके ऑब्जेक्ट बड़े हैं, तो 10:1 मेमोरी से डिस्क अनुपात सामान्य और अपेक्षित है।
यदि आप जानना चाहते हैं कि कौन सी वस्तुएं मेमोरी को खा जाती हैं, तो अपने डेटा को प्रोफाइल करने के लिए रेडिस-आरडीबी-टूल्स का उपयोग करें (अस्वीकरण:मैं इस टूल का लेखक हूं)। वहां से, redis.io पर मेमोरी ऑप्टिमाइज़ेशन नोट्स के साथ-साथ redis-rdb-tools पर मेमोरी ऑप्टिमाइज़ेशन विकी प्रविष्टि का पालन करें।