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

एक एमजीओ सत्र बनाए रखने के लिए सर्वोत्तम अभ्यास

मेरा सुझाव है कि इस तरह के वैश्विक सत्र का उपयोग न करें। इसके बजाय, आप एक प्रकार बना सकते हैं जो सभी डेटाबेस इंटरैक्शन के लिए ज़िम्मेदार है। उदाहरण के लिए:

type DataStore struct {
    session *mgo.Session
}

func (ds *DataStore) ucol() *mgo.Collection { ... }

func (ds *DataStore) UserExist(user string) bool { ... }

उस डिजाइन के कई फायदे हैं। एक महत्वपूर्ण बात यह है कि यह आपको एक ही समय में उड़ान में कई सत्र करने की अनुमति देता है, इसलिए यदि आपके पास एक http हैंडलर है, उदाहरण के लिए, आप एक स्थानीय सत्र बना सकते हैं जो केवल एक अनुरोध के लिए एक स्वतंत्र सत्र द्वारा समर्थित है:

func (s *WebSite) dataStore() *DataStore {
    return &DataStore{s.session.Copy()}
}    

func (s *WebSite) HandleRequest(...) {
    ds := s.dataStore()
    defer ds.Close()
    ...
}

उस मामले में एमजीओ चालक अच्छा व्यवहार करता है, क्योंकि सत्र आंतरिक रूप से कैश किए जाते हैं और पुन:उपयोग/बनाए जाते हैं। प्रत्येक सत्र का उपयोग करते समय एक स्वतंत्र सॉकेट द्वारा समर्थित किया जाएगा, और इसमें स्वतंत्र सेटिंग्स कॉन्फ़िगर हो सकती हैं, और इसमें स्वतंत्र त्रुटि प्रबंधन भी होगा। यदि आप एकल वैश्विक सत्र का उपयोग कर रहे हैं तो ये ऐसे मुद्दे हैं जिनसे आपको अंततः निपटना होगा।



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. मोंगो और उल्का में प्रोग्रामेटिक रूप से फ़ील्ड अपडेट करना

  2. MongoDB में/से जावास्क्रिप्ट ऑब्जेक्ट्स को संग्रहीत करना और पुनर्प्राप्त करना

  3. सी # 2.1 ड्राइवर से मोंगोडीबी डेटाबेस कनेक्शन को ठीक से बंद करना?

  4. मैं कैसे बता सकता हूं कि mongoDB डेटा संग्रहीत कर रहा है? (यह डिफ़ॉल्ट/डेटा/डीबी में नहीं है!)

  5. ClusterControl के साथ एकाधिक डेटाबेस तकनीकों का प्रबंधन