यदि इसे कस्टम क्लाइंट प्रोग्राम (यानी आप मोबाइल फोन) द्वारा कॉल किया जा रहा है, और ब्राउजर नहीं, तो "इन्हें लॉग इन करें" बिल्कुल क्यों। इसके बजाय, बस HTTP प्रमाणीकरण का उपयोग करें (या तो डीआईजीईटी या बेसिक यदि आप एसएसएल जा रहे हैं, या अपनी खुद की योजना), और हर बार "उन्हें लॉग इन करें"।
तब आपको सत्रों के बारे में चिंता करने की ज़रूरत नहीं है, भार संतुलन के बारे में चिंता करने की आवश्यकता नहीं है, आदि। इसे स्टेटलेस रखें।
अनुशेष:
निश्चित रूप से, डीबी को कम हिट बेहतर हैं, कि सिर्फ एक सामान्य नियम है। लेकिन साथ ही, डीबी सर्वर पर कई हिट डीबी सर्वर पर कैश किए गए पृष्ठों, या संभवतः एप्लिकेशन कैश द्वारा संभाले जाते हैं ताकि वे डीबी सर्वर को कभी भी हिट न करें। इसलिए, कुछ मामलों में, एक अनुक्रमित कॉलम के खिलाफ विशेष रूप से सिंगल पंक्ति प्रश्न, डीबी हिट बहुत सस्ते हो सकते हैं।
अब, कोई विचार कर सकता है कि वे दोनों संग्रहीत और आसानी से पहुंचे हैं, डेटाबेस के कैश बिट के बीच वास्तव में क्या अंतर है, और एक अद्वितीय उपयोगकर्ता सत्र।
अच्छा, मुख्य रूप से, अंतर डेटा के अनुबंध में है। एक कैश किए गए आइटम में आपकी स्मृति की मात्रा और अनुक्रमित गतिविधि की मात्रा के अनुपात में आनुपातिक जीवन होता है। इसे थोड़ी मात्रा में स्मृति दें, और कैश किए गए आइटम की संभावना बहुत कम आयु है। इसे बहुत मेमोरी दें, और कैश किए गए आइटम के पास लटकने का एक बेहतर मौका है। यदि कैश किए गए डेटा के लिए स्मृति की मात्रा काफी बड़ी है, जहां उस डेटा के लिए बार-बार गतिविधि कैश का उपयोग जारी रखती है, तो कैश एक बड़ी जीत है। यदि आपका कैश इतनी तेजी से रीसाइक्लिंग कर रहा है तो कैश में कभी भी "इन" नहीं होता है, तो आपके पास कैश का लगभग कोई मूल्य नहीं होता है। लेकिन मुद्दा यह है कि सिस्टम कैश के साथ या उसके बिना काम करेगा, कैश बस एक प्रदर्शन वृद्धि है।
हालांकि, एक सत्र में एक अलग अनुबंध है। कई सत्रों में एक विशिष्ट, न्यूनतम जीवन होता है, आमतौर पर मिनटों में मापा जाता है: 10, 20, यहां तक कि 30 मिनट।
इसका मतलब है कि यदि कोई उपयोगकर्ता आपकी साइट को केवल एक बार मारा जाता है, तो आपको उस उपयोगकर्ता को संसाधन समर्पित करना होगा, भले ही वह कभी वापस न आए। आपको, अन्यथा सत्र प्रस्ताव प्रभावी ढंग से कोई मूल्य नहीं है।
यदि आपको बहुत अधिक ट्रैफ़िक मिलता है, तो आपको प्रबंधित करने के लिए बहुत से नए सत्र मिलते हैं। सिद्धांत रूप में, खराब परिस्थिति में, सत्र सीमा के बिना स्पाइक कर सकते हैं। यदि आपको अचानक आपकी साइट पर 10,000 हिट मिलती हैं, तो आप अपने सत्र के न्यूनतम जीवनकाल के लिए उन हिट के अवशेषों का प्रबंधन कर सकते हैं। आपको संसाधनों (स्मृति या डिस्क) को समर्पित करना होगा, आपको उनका ट्रैक रखना होगा, और फिर, अनिवार्य रूप से, आपको उन्हें साफ़ करना होगा।
एक कैश एक निश्चित संसाधन है। यह केवल आपके द्वारा कॉन्फ़िगर किए गए आकार को बढ़ाता है। कैश में कुछ भी रखने के लिए आपके पास कोई दायित्व नहीं है, और जैसा कि पहले चर्चा की गई थी, सिस्टम कैश के साथ या उसके बिना काम करेगा। कैश स्वाभाविक रूप से रीसायकल। यदि आपको 10,000 हिट की वृद्धि मिलती है, तो वे संभवतः आपके कैश को घुमाएंगे, लेकिन इसके बाद वे आपके सिस्टम पर कोई निशान नहीं छोड़ेंगे। वे 1 या 2 मिनट में हिट और चले जा सकते हैं, फिर कभी नहीं देखा जा सकता है।
अंत में, सत्र के साथ, आप अपने बुनियादी ढांचे के बीच उन्हें साझा करने का इतना है कि वे उपयोगकर्ता के साथ यात्रा करता है, तो वे (जो भी कारण के लिए) मशीन के लिए मशीन से हॉप की जरूरत है। कैश नहीं करते हैं। आदर्श रूप में आप एक उपयोगकर्ता संसाधनों का एक सेट करने के लिए लोकल, ताकि कैश उनके काम कर सकते हैं चाहते हैं, लेकिन सिस्टम काम करता है वे चाल या रहने के लिए कि क्या (यह सिर्फ कैश पुन: उपयोग की वजह से बेहतर काम करता है अगर वे रहने के लिए,)। यदि आप अपने सत्र दोहराना नहीं चाहते हैं, तो वे बिल्कुल काम नहीं करते हैं।
डीबी हिट जोड़, वे सस्ते हो सकता है, लेकिन वे मुक्त कभी नहीं कर रहे हैं। लेकिन एक सत्र की अपनी लागत भी होती है, इसलिए उन दोनों पर विचार करना महत्वपूर्ण है और वे आपके वास्तुकला में कैसे लागू होते हैं।
पीएचपी और उसके सत्र जिस तरह से और अधिक शक्तिशाली की तुलना में आप सोच सकते हैं कर रहे हैं। अगर अभी अपने सर्वर पर बहुत अधिक बोझ है (अनुकूलन बाद में - नहीं समय से पहले ही!), पीएचपी में 'session.save_handler' निर्देश बदलते सत्र (फाइल सिस्टम के बजाय) के भंडारण के लिए एक डेटाबेस का उपयोग करने पर विचार करें। इसके अलावा, हमेशा अपना खुद का रोल करने के बजाय एक सुरक्षित प्रमाणीकरण लाइब्रेरी का उपयोग करें। उदाहरण: https: // github।com/joy-im/PHP-auth जो ढांचे-अज्ञेयवादी और डेटाबेस-अज्ञेय दोनों है। – caw