Redis
 sql >> डेटाबेस >  >> NoSQL >> Redis

लॉगिंग के लिए रेडिस

आपको यह ध्यान रखने की आवश्यकता है कि Redis एक इन-मेमोरी डेटाबेस है (भले ही यह डेटा को डिस्क पर बनाए रख सकता है)। रेडिस में आपके द्वारा डाला गया डेटा मेमोरी में फिट होना चाहिए।

आपके द्वारा उल्लिखित लेख में प्रस्ताव रेडिस को एक वितरित कतार प्रणाली के रूप में उपयोग करने के बारे में है। कार्यकर्ता वस्तुओं को डीक्यू करता है और उन्हें डिस्क पर लिखता है, इसलिए रेडिस मेमोरी में इतने सारे आइटम नहीं हैं। इस डिज़ाइन में एक दोष है:यदि कार्यकर्ता प्रक्रिया डेटा को डिस्क पर पर्याप्त तेज़ी से नहीं लिख सकती है, तो Redis मेमोरी की खपत में विस्फोट हो जाएगा - इसलिए इसे कॉन्फ़िगरेशन (Redis maxmemory पैरामीटर) या सॉफ़्टवेयर द्वारा सीमित करना होगा (सम्मिलित समय पर कतार को ट्रिम करें, या खाली) कतार जब भर जाती है)।

अब आपका प्रस्ताव वास्तव में काम नहीं करता है क्योंकि रेडिस में आपके द्वारा लिखे गए सभी डेटा को मेमोरी में रखा जाएगा (भले ही वे रेडिस द्वारा डिस्क पर बने रहें)।

एक और बात यह है कि आप रेडिस को क्वेरी नहीं कर सकते। रेडिस एक रिलेशनल डेटाबेस नहीं है, यह बिना किसी एड-हॉक क्वेरी मैकेनिज्म का समर्थन करता है, केवल पहले से परिभाषित एक्सेस पथों को शामिल करता है। यदि आप विभिन्न मापदंडों के साथ डेटा खोजना चाहते हैं, तो आपको सभी संभावित खोजों का अनुमान लगाना होगा और सम्मिलित समय पर प्रासंगिक डेटा संरचनाएं (सेट, सॉर्ट किए गए सेट, आदि ...) बनाना होगा।

एक और स्टोर (मोंगोडीबी, या एक रिलेशनल डेटाबेस) शायद आपके उपयोग के मामले में काफी बेहतर होगा।



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. स्प्रिंग डेटा के साथ जेडिस का उपयोग करते समय रेडिस में अजीब कुंजी के साथ डेटा क्यों संग्रहीत किया जा रहा है?

  2. रेडिस के सोर्स कोड से एरिया और बाउंडिंगबॉक्स में क्या अंतर है

  3. स्प्रिंग या स्प्रिंग बूट के साथ रेडिस का उपयोग करते समय डिफ़ॉल्ट कैश रणनीति क्या है?

  4. NodeJs - रेडिस का उपयोग करना, एक्सप्रेस के साथ कनेक्ट-रेडिस

  5. रेडिस मेमोरी ऑप्टिमाइज़ेशन चीट शीट