आप अपने विकास और/या परीक्षण मशीन पर कई परियोजनाओं का प्रबंधन कैसे करते हैं, जब उनमें से कुछ परियोजनाएं Redis डेटाबेस का उपयोग करती हैं?कई परियोजनाओं के साथ एक देव मशीन पर Redis डेटाबेस
- Redis नाम दिया नहीं है डेटाबेस (केवल नंबर 0-16)
- टेस्ट प्रत्येक रन पर FLUSHDB निष्पादित करने के लिए
अभी संभावना है:
2 प्रमुख समस्याएं हैं , मुझे लगता है कि हमारे पास तीन विकल्प हैं:
- प्रत्येक प्रोजेक्ट, प्रत्येक देव और परीक्षण वातावरण के लिए अलग-अलग डेटाबेस असाइन करें
- मुख्य का उपयोग करें और के लिए "की तरह
redis-namespace
- Nuke कुछ का उपयोग कर एक परियोजना का नाम और डेटाबेस किसी भी समय आप परियोजनाओं के बीच स्विच
पहले एक समस्याग्रस्त है बीज अगर कई परियोजनाओं आवंटित" 0 "के साथ उपसर्ग कुंजी 1 "परीक्षण और इस तरह के लिए। भले ही प्रोजेक्ट बी ने "2" और "3" में बदलने का फैसला किया हो, फिर भी परियोजना में किसी अन्य सदस्य के लिए अन्य परियोजनाओं में संघर्ष हो सकता है। दूसरे शब्दों में, यह दृष्टिकोण एससीएम अनुकूल नहीं है।
दूसरे के लिए, यह एक बुरा विचार है क्योंकि यह रनटाइम प्रदर्शन और स्मृति दक्षता पर अनावश्यक ओवरहेड जोड़ता है। और इससे कोई फर्क नहीं पड़ता कि आप क्या करते हैं, जब आप परियोजना में शामिल हो जाते हैं तो एक और प्रोजेक्ट पहले से ही उसी कुंजी का उपयोग कर सकता है।
तीसरा विकल्प समझौता का एक उत्पाद है, लेकिन कभी-कभी मैं अपने स्थानीय डेटा को छूटे रखना चाहता हूं जबकि मैं अन्य परियोजनाओं के लिए छोटे पैच तैनात करता हूं।
मुझे पता है कि यह रेडिस के लिए एक फीचर अनुरोध हो सकता है, लेकिन मुझे अब एक समाधान की आवश्यकता है।
कोई विचार, प्रथाओं?
मैं असहमत हूं कि कई उदाहरण कम ओवरहेड हैं। पोर्ट नंबर विकास मशीन पर सबसे सीमित संसाधनों में से एक है, और उपलब्धता पर्यावरण पर निर्भर करती है, इस प्रकार टीम में अन्य लोगों के लिए तय नहीं किया जा सकता है। इसका मतलब है कि डिजाइनरों को भी समझना चाहिए कि पर्यावरण परिवर्तनीय कैसे काम करता है। उदाहरण के लिए – kenn
, मेरे पास https://github.com/kenn/redis-mutex जैसी लाइब्रेरी है और वहां, यह परीक्षण के लिए db15 का उपयोग करता है ताकि यह गलती से योगदानकर्ता के वास्तविक डेटा पर कदम न उठाए। – kenn
निश्चित रूप से उपलब्ध बंदरगाहों की एक सीमित संख्या है। लेकिन क्या आपको सच में लगता है कि आपके पास एक एकल देव प्रणाली पर लगभग 64,000 उदाहरण होंगे? व्यावहारिक रूप से बोलते हुए यदि प्रत्येक उदाहरण में 1 एमबी मेमोरी का उपयोग किया जाता है जिसे 64 जीबी रैम वाले सिस्टम पर होना आवश्यक है। मैं उन डेवलपर्स के बारे में भी चिंतित हूं जो पर्यावरण चर को समझ नहीं पाएंगे। जिथब पर आपका उदाहरण प्रोजेक्ट मेरे कई डेटाबेस मिटा देगा। आप बस यह नहीं मान सकते कि एक दिया गया डेटाबेस नंबर "आपका" है, और डेवलपर आपके द्वारा चुने गए किसी भी व्यक्ति का उपयोग नहीं करेंगे। –