पृष्ठभूमि
<पी> कभी-कभी, रेडिस का उपयोग करने की प्रक्रिया में, हमें बहुत अधिक मेमोरी या पूर्ण बैंडविड्थ जैसी समस्याओं का सामना करना पड़ सकता है। जब हम इन समस्याओं का सामना करते हैं, तो हमें रेडिस की मेमोरी का विश्लेषण करने की आवश्यकता होती है। <पी> रेडिस के लिए मेमोरी विश्लेषण दो प्रकार के होते हैं:ऑनलाइन विश्लेषण और ऑफ़लाइन विश्लेषण। ऑनलाइन विश्लेषण सीधे रेडिस सर्वर से जुड़ता है और उसकी मेमोरी का विश्लेषण करता है, जिससे रेडिस सर्वर पर लोड बढ़ जाएगा। इससे रेडिस सर्वर की स्थिरता प्रभावित हो सकती है। ऑफ़लाइन विश्लेषण आरडीबी बैकअप फ़ाइलों पर आधारित है, जो रेडिस सर्वर की स्थिरता को प्रभावित नहीं करेगा। इसकी अनुशंसा तब की जाती है जब उपयोग की गई मेमोरी 2GB से अधिक हो। <पी> हम रेडिस की मेमोरी का ऑफ़लाइन विश्लेषण कैसे कर सकते हैं? ओपन सोर्स की दुनिया में दो प्रसिद्ध उपकरण हैं जो हमारी मदद कर सकते हैं:रेडिस-आरडीबी-टूल्स और आरडीआर।पी> <पी> redis-rdb-tools को Python द्वारा कार्यान्वित किया जाता है, और rdr को Golang द्वारा कार्यान्वित किया जाता है। यदि डेवलपर्स इन दो भाषाओं से परिचित नहीं हैं और उनके आधार पर कुछ कार्यों का विस्तार करना चाहते हैं, तो प्रक्रिया अधिक कठिन हो सकती है। इसके बाद, मैं C# द्वारा कार्यान्वित एक और ऑफ़लाइन विश्लेषण टूल पेश करूंगा जिसका विस्तार करना C# डेवलपर्स के लिए आसान होगा। आरडीबी-टूल्स
<पी> आरडीबी-टूल्स रेडिस आरडीबी फ़ाइलों को पार्स/विश्लेषण करने का एक उपकरण है जिसे सी# द्वारा कार्यान्वित किया जाता है। <पी> इसमें दो भाग होते हैं: - एक पार्सर लाइब्रेरी, जिसे आप स्वयं अनुकूलित कर सकते हैं।
- एक एनलिसिस सीएलआई टूल, जिससे आप कमांड लाइन के लिए कुछ बुनियादी उपयोगों का विश्लेषण कर सकते हैं।
<पी> पार्सर लाइब्रेरी net6.0 पर आधारित है ताकि हम इसका विस्तार आसानी से कर सकें. <पी> सीएलआई टूल भी net6.0 पर आधारित है , जो कमांड-लाइन-एपीआई का उपयोग करके बनाया गया है और इसे रनटाइम निर्भरता के बिना बाइनरी फ़ाइलों में पैक किया जा सकता है। सीएलआई टूल का उपयोग
<पी> rdb-cli इंस्टॉल करने के दो तरीके हैं . - यदि आप .NET 6.0 SDK इंस्टॉल नहीं करते हैं, तो अपने OS संस्करण के आधार पर नवीनतम स्थिर रिलीज़ से टूल डाउनलोड करें।
- यदि आपने .NET 6.0 SDK इंस्टॉल किया है, तो आप
dotnet tool install --global rdb-cli का उपयोग कर सकते हैं स्थापित करने के लिए.
<पी> यहां हम पहला तरीका बताएंगे. <पी> डाउनलोड करने और निकालने के बाद, आपको rdb-cli नामक एक निष्पादन योग्य फ़ाइल मिलेगी . <पी> इनपुट ./rdb-cli -h सहायता जानकारी प्राप्त करने के लिए. <पी>
<पी> जैसा कि आप देख सकते हैं, दो कमांड हैं जिनका हम उपयोग कर सकते हैं। सबसे महत्वपूर्ण कमांड मेमोरी है . <पी>
<पी> सहायता जानकारी से, आप देख सकते हैं कि आपको आरडीबी फ़ाइल और कुछ विशिष्ट विकल्प निर्दिष्ट करने की आवश्यकता है। <पी> एक सरल और सामान्य उदाहरण इस प्रकार है:
./rdb-cli memory /tmp/test/demo.rdb -ot html
<पी> यह कमांड rdb फ़ाइल का विश्लेषण करेगा, और विश्लेषण परिणाम HTML के रूप में प्रस्तुत किए जाएंगे। <पी> नीचे दिया गया स्क्रीनशॉट निष्पादन कमांड का आउटपुट दिखाता है। यह स्पष्ट है कि 2.1GB RDB फ़ाइल का विश्लेषण करने में केवल 32 सेकंड लगते हैं, जो अपेक्षाकृत तेज़ गति है। <पी>
<पी> /tmp/test/res.html में विस्तृत HTML रिपोर्ट आउटपुट पी> <पी> आइये इस पर एक नजर डालते हैं। <पी>
<पी>
<पी>
<पी>
<पी> HTML परिणाम में तीन भाग होते हैं: <पी> पहला भाग बुनियादी जानकारी है, जिसमें आरडीबी संस्करण की जानकारी, रेडिस संस्करण की जानकारी, कुल मेमोरी और कुंजियों की कुल संख्या शामिल है। <पी> दूसरा भाग कुछ हिस्टोग्राम है, मुख्य रूप से विभिन्न डेटा प्रकारों की मेमोरी और मात्रा वितरण, साथ ही समाप्ति समय की मेमोरी और मात्रा वितरण। <पी> तीसरा भाग कुछ तालिकाएँ हैं, जिनमें शीर्ष कुंजी उपसर्ग सूची, शीर्ष बड़ी कुंजी सूची, शीर्ष स्ट्रीम सूची और फ़ंक्शन सूची (रेडिस 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 फ़ाइलों का विश्लेषण संदर्भ के लिए पूरक है। <पी>
<पी> ऊपर वर्णित सीएलआई उपकरण आपकी आवश्यकताओं के लिए पूरी तरह उपयुक्त नहीं हो सकते हैं। इस समय, हम पार्सिंग क्लास लाइब्रेरी के आधार पर अपनी अनुकूलन आवश्यकताओं को अनुकूलित कर सकते हैं। पार्सर लाइब्रेरी का उपयोग
<पी> इंस्टॉल करें RDBParse सबसे पहले nuget से पैकेज।
dotnet add package RDBParse
<पी> इसके बाद, आपको IReaderCallback को लागू करने के लिए एक कार्यान्वयन वर्ग जोड़ना होगा इंटरफ़ेस. <पी> फिर, BinaryReaderRDBParser का एक नया उदाहरण बनाएं क्लास. <पी> अंत में, Parse पर कॉल करें BinaryReaderRDBParser की विधि का उदाहरण. <पी> उदाहरण के लिए इस नीचे दिए गए कोड का अनुसरण करें।
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.c
- rdr github पेज
- रेडिस-आरडीबी-टूल्स जीथब पेज