परिचय
लारावेल स्केलेबल, उच्च-प्रदर्शन वेब अनुप्रयोगों के निर्माण के लिए एक लोकप्रिय PHP ढांचा है।
इस लेख में, हम सीखेंगे कि सर्वर रहित रेडिस इंस्टेंस में लारवेल सत्र और कैश डेटा को संग्रहीत करके लारवेल अनुप्रयोगों को स्केल करने के लिए सर्वर रहित रेडिस का उपयोग कैसे करें।
आवश्यकताएँ
आरंभ करने से पहले, आपको निम्नलिखित की आवश्यकता होगी:
- अपस्टैश खाता:यदि आपके पास खाता नहीं है, तो आप निःशुल्क साइन अप कर सकते हैं, किसी क्रेडिट कार्ड की आवश्यकता नहीं है।
- यदि आपके पास Laravel इंस्टॉल नहीं है, तो आप इसे कैसे करें, इसके लिए यहां दिए गए चरणों का पालन कर सकते हैं:1-क्लिक के साथ Laravel इंस्टॉल करें
वास्तुकला अवलोकन
लैरावेल को एक सर्वर पर चलाने के बजाय, आइए निम्नलिखित परिदृश्य पर विचार करें:
- एक Laravel एप्लिकेशन जो दो वेब सर्वर पर चल रहा है।
- एक सिंगल लोड बैलेंसर दो वेब सर्वरों के अनुरोधों को रूट करने के लिए जिम्मेदार है।
- एक MySQL डेटाबेस सर्वर, एप्लिकेशन के डेटा को स्टोर करने के लिए उपयोग किया जाता है।
- अपस्टैश सर्वर रहित रेडिस क्लस्टर डेटा कैशिंग और उपयोगकर्ता सत्रों को संग्रहीत करने के लिए जिम्मेदार है।
आरेख:
सर्वर रहित रेडिस क्या है?
सर्वरलेस रेडिस एक सेवा उत्पाद के रूप में पूरी तरह से प्रबंधित डेटाबेस है जहां मूल्य निर्धारण प्रति आदेश पर आधारित है, इसलिए आपसे केवल वही शुल्क लिया जाता है जो आप वास्तव में उपयोग करते हैं।
इस तरह आपको अपने सर्वरों को अधिक प्रावधान करने की आवश्यकता नहीं है, और आप आवश्यकतानुसार अपने आवेदन को बढ़ा सकते हैं।
सर्वर रहित Redis क्यों?
डिफ़ॉल्ट रूप से, Laravel उपयोगकर्ता सत्रों को वेब सर्वर की डिस्क पर फ़ाइलों में संग्रहीत करेगा। इस तरह यदि लोड बैलेंसर उपयोगकर्ता के अनुरोध को किसी भिन्न सर्वर पर अग्रेषित करता है, तो उपयोगकर्ता सत्र खो जाएगा।
यही कारण है कि उपयोगकर्ता सत्रों और एप्लिकेशन कैश को संग्रहीत करने के लिए एक केंद्रीकृत स्थान होना महत्वपूर्ण है, ताकि उन्हें अनुरोधों और कई सर्वरों के बीच साझा किया जा सके, और हर बार लोड बैलेंसर किसी भिन्न सर्वर के अनुरोध को अग्रेषित न करे।
बेशक, आप अपने डेटाबेस का उपयोग उपयोगकर्ता सत्र और कैश डेटा को संग्रहीत करने के लिए भी कर सकते हैं, लेकिन बेहतर प्रदर्शन के लिए, बेहतर प्रदर्शन के लिए Redis का उपयोग करने की अनुशंसा की जाती है। यदि आप विभिन्न विकल्पों के प्रदर्शन लाभों के बारे में अधिक जानना चाहते हैं, तो इस बेहतरीन लेख को यहां देखें:प्रदर्शन के लिए सबसे अच्छा लारवेल कैश ड्राइवर कौन सा है?.
क्षैतिज स्केलिंग बनाम लंबवत स्केलिंग
क्षैतिज और लंबवत स्केलिंग के बीच अंतर के बारे में बस कुछ शब्द:
- जब आपके पास एक ही सर्वर होता है, तो आप इसमें और संसाधन जोड़कर इसे लंबवत रूप से माप सकते हैं। उदाहरण के लिए, आप स्केल-अप . में अधिक CPU कोर, RAM या डिस्क स्थान जोड़ सकते हैं ।
- दूसरी ओर क्षैतिज स्केलिंग, जब आप अधिक सर्वर जोड़ते हैं जो स्केल-आउट के अनुरोधों को प्रस्तुत करने के लिए जिम्मेदार होते हैं ।
क्षैतिज स्केलिंग बनाम लंबवत स्केलिंग का एक सरल उदाहरण यहां दिया गया है:
किसी एप्लिकेशन को क्षैतिज रूप से स्केल करते समय, अपने उपयोगकर्ता सत्रों और कैशे डेटा को स्केलेबल तरीके से संभालना महत्वपूर्ण है।
सर्वर रहित Redis क्लस्टर बनाना
Upstash के साथ, आप इन चरणों का पालन करके 30 सेकंड में सर्वर रहित Redis क्लस्टर बना सकते हैं:
- अपने अपस्टैश खाते में लॉग इन करें।
- डेटाबेस बनाएं पर क्लिक करें बटन।
- अपने Redis क्लस्टर का नाम दर्ज करें और एक क्षेत्र चुनें।
- बनाएं . पर क्लिक करें बटन।
इतना ही! अब आपके पास सर्वर रहित रेडिस क्लस्टर उपयोग के लिए तैयार है।
अपने Redis क्लस्टर के एंडपॉइंट को पासवर्ड और पोर्ट के साथ नोट करना सुनिश्चित करें।
लारवेल को सर्वर रहित रेडिस के साथ कॉन्फ़िगर करना
अब जब आपके पास सर्वर रहित Redis क्लस्टर है, तो आप Laravel को इसका उपयोग करने के लिए वैसे ही कॉन्फ़िगर कर सकते हैं जैसे आप किसी अन्य Redis उदाहरण के लिए करते हैं।
प्रीडिस पैकेज इंस्टॉल करें
अतीत में, आप अपने Redis क्लस्टर से कनेक्ट करने के लिए PHP Redis एक्सटेंशन का उपयोग करते थे। हालाँकि, अब आप इसके बजाय Predis पैकेज का उपयोग कर सकते हैं।
Predis पैकेज को इंस्टाल करने के लिए, निम्न कमांड चलाएँ:
composer require predis/predis
इसके बाद, अपने Laravel प्रोजेक्ट के .env
. पर जाएं फ़ाइल करें और निम्न पंक्तियों को अपडेट करें:
REDIS_HOST=your_upstash_redis_endpoint
REDIS_PASSWORD=your_upstash_redis_password
REDIS_PORT=your_upstash_redis_port
Redis विवरण बदलते समय, कैश ड्राइवर और सत्र ड्राइवर को redis
में भी बदलना सुनिश्चित करें :
CACHE_DRIVER=redis
SESSION_DRIVER=redis
अंत में, निम्न कमांड चलाकर अपना कॉन्फिग कैश साफ़ करें:
php artisan config:clear
इस तरह आपका Laravel एप्लिकेशन अपने कैशे और सत्र डेटा को संग्रहीत करने के लिए सर्वर रहित Redis क्लस्टर का उपयोग करेगा।
निष्कर्ष
सर्वर रहित रेडिस के साथ लारवेल का उपयोग करना आपके एप्लिकेशन को स्केल करने का एक शानदार तरीका है। भले ही आप कुबेरनेट्स क्लस्टर पर लारवेल चला रहे हों, फिर भी आप अपने उपयोगकर्ता सत्रों और कैशे डेटा को स्केलेबल तरीके से संग्रहीत करने के लिए सर्वर रहित रेडिस क्लस्टर का उपयोग कर सकते हैं।
Upstash के बारे में अधिक जानकारी के लिए, दस्तावेज़ीकरण देखें।
अपने लारवेल एप्लिकेशन को स्केल करने के तरीके के बारे में अधिक जानकारी के लिए निम्नलिखित लेख देखें:
- प्रबंधित डेटाबेस और ऑब्जेक्ट संग्रहण का उपयोग करके स्केलेबल Laravel 6 एप्लिकेशन कैसे सेट करें