Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Redis

Redis RDB फाइलों के विश्लेषण के लिए व्यापक उपकरण

पृष्ठभूमि

कभी-कभी, Redis का उपयोग करने की प्रक्रिया में, हम समस्याओं का सामना कर सकते हैं, जैसे बहुत अधिक मेमोरी या पूर्ण बैंडविड्थ। जब हम इन समस्याओं का सामना करते हैं, तो हमें Redis की मेमोरी का विश्लेषण करने की आवश्यकता होती है।

Redis के लिए दो प्रकार के मेमोरी विश्लेषण हैं: ऑनलाइन विश्लेषण और ऑफलाइन विश्लेषण। ऑनलाइन विश्लेषण सीधे Redis सर्वर से जुड़ता है और उसकी मेमोरी का विश्लेषण करता है, जिससे Redis सर्वर पर लोड बढ़ जाएगा। यह Redis सर्वर की स्थिरता को प्रभावित कर सकता है। ऑफलाइन विश्लेषण RDB बैकअप फाइलों पर आधारित है, जो Redis सर्वर की स्थिरता को प्रभावित नहीं करेगा। यह तब अनुशंसित है जब उपयोग की गई मेमोरी 2GB से अधिक हो।

हम Redis की मेमोरी का ऑफलाइन विश्लेषण कैसे कर सकते हैं? ओपन सोर्स दुनिया में दो प्रसिद्ध उपकरण हैं जो हमारी मदद कर सकते हैं: redis-rdb-tools और rdr।

redis-rdb-tools Python द्वारा कार्यान्वित है, और rdr Golang द्वारा कार्यान्वित है। यदि डेवलपर्स इन दो भाषाओं से परिचित नहीं हैं और उन पर आधारित कुछ कार्यों का विस्तार करना चाहते हैं, तो प्रक्रिया अधिक कठिन हो सकती है। अगला, मैं C# द्वारा कार्यान्वित एक और ऑफलाइन विश्लेषण उपकरण पेश करूंगा जो C# डेवलपर्स के लिए विस्तार करना आसान होगा।

rdb-tools

rdb-tools एक उपकरण है जो Redis RDB फाइलों को पार्स/विश्लेषण करता है जिसे C# द्वारा कार्यान्वित किया गया है।

इसमें दो भाग होते हैं:

  • एक पार्सर लाइब्रेरी, जिसे आप स्वयं अनुकूलित कर सकते हैं।
  • एक विश्लेषण CLI उपकरण, जिसका उपयोग आप कमांड लाइन के लिए कुछ बुनियादी उपयोगों का विश्लेषण करने के लिए कर सकते हैं।

पार्सर लाइब्रेरी net6.0 पर आधारित है ताकि हम इसे आसानी से विस्तारित कर सकें।

CLI उपकरण भी net6.0 पर आधारित है, जिसे कमांड-लाइन-API का उपयोग करके बनाया गया है और इसे रनटाइम निर्भरता के बिना बाइनरी फाइलों में पैक किया जा सकता है।

CLI उपकरण का उपयोग

rdb-cli इंस्टॉल करने के दो तरीके हैं।

  1. यदि आपने .NET 6.0 SDK इंस्टॉल नहीं किया है, तो अपने OS संस्करण के आधार पर नवीनतम स्थिर रिलीज़ से उपकरण डाउनलोड करें।
  2. यदि आपने .NET 6.0 SDK इंस्टॉल किया है, तो इंस्टॉल करने के लिए dotnet tool install --global rdb-cli का उपयोग कर सकते हैं।

यहां हम पहला तरीका दिखाएंगे।

डाउनलोड और निकालने के बाद, आपको rdb-cli नामक एक निष्पादन योग्य फाइल मिलेगी।

मदद की जानकारी प्राप्त करने के लिए ./rdb-cli -h इनपुट करें।

Redis RDB फाइलों के विश्लेषण के लिए व्यापक उपकरण

जैसा कि आप देख सकते हैं, दो कमांड हैं जिनका हम उपयोग कर सकते हैं। सबसे महत्वपूर्ण कमांड memory है।

Redis RDB फाइलों के विश्लेषण के लिए व्यापक उपकरण

मदद की जानकारी से, आप देख सकते हैं कि आपको RDB फाइल और कुछ विशिष्ट विकल्प निर्दिष्ट करने की आवश्यकता है।

एक सरल और सामान्य उदाहरण इस प्रकार है:

./rdb-cli memory /tmp/test/demo.rdb -ot html

यह कमांड RDB फाइल का विश्लेषण करेगा, और विश्लेषण परिणाम HTML के रूप में प्रस्तुत किए जाएंगे।

नीचे दिए गए स्क्रीनशॉट में निष्पादन कमांड का आउटपुट दिखाया गया है। यह स्पष्ट है कि 2.1GB RDB फाइल का विश्लेषण करने में केवल 32 सेकंड लगते हैं, जो अपेक्षाकृत तेज गति है।

Redis RDB फाइलों के विश्लेषण के लिए व्यापक उपकरण

विस्तृत HTML रिपोर्ट आउटपुट /tmp/test/res.html में

आइए इसे देखें।

Redis RDB फाइलों के विश्लेषण के लिए व्यापक उपकरण

Redis RDB फाइलों के विश्लेषण के लिए व्यापक उपकरण

Redis RDB फाइलों के विश्लेषण के लिए व्यापक उपकरण

Redis RDB फाइलों के विश्लेषण के लिए व्यापक उपकरण

HTML परिणाम में तीन भाग होते हैं:

पहला भाग बुनियादी जानकारी है, जिसमें RDB संस्करण जानकारी, Redis संस्करण जानकारी, कुल मेमोरी और कुंजियों की कुल संख्या शामिल है।

दूसरा भाग कुछ हिस्टोग्राम हैं, मुख्य रूप से विभिन्न डेटा प्रकारों की मेमोरी और मात्रा वितरण, साथ ही समाप्ति समय की मेमोरी और मात्रा वितरण।

तीसरा भाग कुछ टेबल हैं, जिनमें शीर्ष कुंजी प्रीफिक्स सूची, शीर्ष बड़ी कुंजी सूची, शीर्ष स्ट्रीम सूची, और फ़ंक्शन सूची (Redis 7.0) शामिल हैं।

इसके अतिरिक्त, यदि आप सभी जानकारी का विश्लेषण नहीं करना चाहते हैं और कुछ शर्तों को फ़िल्टर करना चाहते हैं, तो आप विभिन्न पैरामीटर विकल्प निर्दिष्ट कर सकते हैं।

दो उदाहरण:

1. जब आप केवल DB 9 और DB 10 का विश्लेषण करना चाहते हैं:

./rdb-cli memory /tmp/test/demo.rdb -ot html --db 9 --db 10

2. जब आप केवल हैश और स्ट्रिंग प्रकारों का विश्लेषण करना चाहते हैं:

./rdb-cli memory /tmp/test/demo.rdb -ot html --type string --type hash

संदर्भ के लिए 2~8GB RDB फाइलों के विश्लेषण को पूरक किया गया है।

Redis RDB फाइलों के विश्लेषण के लिए व्यापक उपकरण

ऊपर वर्णित CLI उपकरण आपकी आवश्यकताओं के लिए पूरी तरह उपयुक्त नहीं हो सकते हैं। इस समय, हम पार्सिंग क्लास लाइब्रेरी के आधार पर अपनी अनुकूलन आवश्यकताओं को अनुकूलित कर सकते हैं।

पार्सर लाइब्रेरी का उपयोग

सबसे पहले NuGet से RDBParse पैकेज इंस्टॉल करें।

dotnet add package RDBParse

अगला, आपको IReaderCallback इंटरफेस को लागू करने के लिए एक कार्यान्वयन क्लास जोड़ने की आवश्यकता है।

फिर, BinaryReaderRDBParser क्लास का एक नया उदाहरण बनाएं।

अंत में, BinaryReaderRDBParser के उदाहरण की Parse मेथड को कॉल करें।

नीचे उदाहरण के लिए कोड दिया गया है।

public class MyReaderCallBack : IReaderCallback
{
}
var path = "/yourpath/your.rdb"
var cb = new MyReaderCallBack();
var parser = new RDBParser.BinaryReaderRDBParser(cb);
parser.Parse(path);

सारांश

यह लेख C# पर आधारित एक RDB विश्लेषण उपकरण पेश करता है और इसके बुनियादी उपयोग और इसे कैसे अनुकूलित करें, इसे समझाता है।

मुझे आशा है कि यह आपकी मदद करेगा!

संदर्भ

  • rdb-tools GitHub पेज
  • Redis का rdb.c
  • rdr GitHub पेज
  • redis-rdb-tools GitHub पेज
  1. C++ में अद्वितीय बाइनरी सर्च ट्री II C++ में अद्वितीय बाइनरी सर्च ट्री II

    समस्यामान लीजिए हमारे पास एक पूर्णांक n है, हमें उन सभी संरचनात्मक रूप से अद्वितीय बाइनरी सर्च ट्री को उत्पन्न करना है जो 1 से n तक के मान संग्रहीत करते हैं। उदाहरण के लिए, यदि इनपुट 3 है, तो ट्री इस प्रकार होंगे:समाधान दृष्टिकोणइसे हल करने के लिए हम निम्न चरणों का पालन करेंगे:generate() नामक एक पुन

  1. एंड्रॉइड में दी गई रेंज में रैंडम नंबर कैसे जनरेट करें? एंड्रॉइड में दी गई रेंज में रैंडम नंबर कैसे जनरेट करें?

    एंड्रॉइड में रेंज-बाउंड रैंडम नंबर जनरेशन यह ट्यूटोरियल दर्शाता है कि उपयोगकर्ता-निर्दिष्ट न्यूनतम और अधिकतम मानों के बीच रैंडम इंटीजर कैसे जनरेट करें, इनपुट वैलिडेशन और एरर हैंडलिंग के साथ। लेआउट (activity_main.xml) <LinearLayout xmlns:android=https://schemas.android.com/apk/res/android and

  1. HTML DOM Track default प्रॉपर्टी HTML DOM Track default प्रॉपर्टी

    HTML DOM Track default प्रॉपर्टी एक बूलियन मान सेट या लौटाती है जो दर्शाता है कि ट्रैक तब तक सक्षम है जब तक उपयोगकर्ता की प्राथमिकता इसका विरोध न करे। नोट: प्रति मीडिया (ऑडियो/वीडियो) एलिमेंट केवल एक ट्रैक default होना चाहिए। सिंटैक्स trackObject.default मान सेट करना trackObject.default = booleanVa