Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Redis

सर्वरलेस Redis के साथ Laravel परफॉरमेंस बूस्ट करें: एक व्यावहारिक गाइड

परिचय

Laravel स्केलेबल, हाई-परफॉरमेंस वेब एप्लिकेशन बनाने के लिए एक लोकप्रिय PHP फ्रेमवर्क है।

इस लेख में, हम सीखेंगे कि सर्वरलेस Redis का उपयोग करके Laravel एप्लिकेशन को कैसे स्केल करें, Laravel सेशन और कैश डेटा को सर्वरलेस Redis इंस्टेंस में स्टोर करके।

पूर्व-आवश्यकताएं

शुरू करने से पहले, आपको निम्नलिखित की आवश्यकता होगी:

  • Upstash अकाउंट: यदि आपके पास नहीं है, तो आप मुफ्त में साइन अप कर सकते हैं, क्रेडिट कार्ड की आवश्यकता नहीं।
  • यदि आपके पास Laravel इंस्टॉल नहीं है, तो आप यहां 1-क्लिक में Laravel इंस्टॉल करने के चरणों का पालन कर सकते हैं: Install Laravel with 1-click

आर्किटेक्चर अवलोकन

Laravel को एक सिंगल सर्वर पर चलाने के बजाय, आइए निम्नलिखित परिदृश्य पर विचार करें:

  • दो वेब सर्वर पर चल रहा एक Laravel एप्लिकेशन।
  • एक सिंगल लोड बैलेंसर दो वेब सर्वरों को अनुरोध रूट करने के लिए जिम्मेदार है।
  • एक MySQL डेटाबेस सर्वर, एप्लिकेशन के डेटा को स्टोर करने के लिए उपयोग किया जाता है।
  • Upstash सर्वरलेस Redis क्लस्टर डेटा कैश करने और यूजर सेशन स्टोर करने के लिए जिम्मेदार है।

आरेख:

सर्वरलेस Redis के साथ Laravel परफॉरमेंस बूस्ट करें: एक व्यावहारिक गाइड

सर्वरलेस Redis क्या है?

सर्वरलेस Redis एक फुली मैनेज्ड डेटाबेस-एज-ए-सर्विस उत्पाद है जहां मूल्य निर्धारण प्रति कमांड पर आधारित है, इसलिए आपसे केवल वही शुल्क लिया जाता है जो आप वास्तव में उपयोग करते हैं।

इस तरह आपको अपने सर्वर को ओवर-प्रोविजन नहीं करना पड़ता, और आप अपनी एप्लिकेशन को आवश्यकतानुसार स्केल कर सकते हैं।

सर्वरलेस Redis क्यों?

डिफ़ॉल्ट रूप से, Laravel यूजर सेशन को वेब सर्वर की डिस्क पर फाइलों में स्टोर करेगा। इस तरह यदि लोड बैलेंसर उपयोगकर्ता अनुरोध को एक अलग सर्वर पर फॉरवर्ड करता है, तो यूजर सेशन खो जाएगा।

यही कारण है कि यूजर सेशन और एप्लिकेशन कैश को स्टोर करने के लिए एक केंद्रीकृत स्थान होना महत्वपूर्ण है, ताकि उन्हें अनुरोधों के बीच और कई सर्वरों में साझा किया जा सके, और हर बार लोड बैलेंसर द्वारा अनुरोध को एक अलग सर्वर पर फॉरवर्ड करने पर खो न जाए।

बेशक, आप अपने डेटाबेस का उपयोग यूजर सेशन और कैश डेटा स्टोर करने के लिए भी कर सकते हैं, लेकिन बेहतर परफॉरमेंस के लिए, Redis का उपयोग करने की सिफारिश की जाती है। यदि आप विभिन्न विकल्पों के परफॉरमेंस लाभों के बारे में अधिक जानना चाहते हैं, तो इस बेहतरीन लेख को देखें: Which is the best Laravel cache driver for performance?.

हॉरिजॉन्टल स्केलिंग बनाम वर्टिकल स्केलिंग

हॉरिजॉन्टल और वर्टिकल स्केलिंग के बीच अंतर के बारे में कुछ शब्द:

  • जब आपके पास एक सिंगल सर्वर होता है, तो आप इसमें अधिक संसाधन जोड़कर इसे वर्टिकली स्केल कर सकते हैं। उदाहरण के लिए, आप स्केल-अप करने के लिए अधिक CPU कोर, RAM, या डिस्क स्पेस जोड़ सकते हैं।
  • दूसरी ओर, हॉरिजॉन्टल स्केलिंग तब होती है जब आप अनुरोधों की सेवा के लिए जिम्मेदार अधिक सर्वर जोड़कर स्केल-आउट करते हैं।

यहां हॉरिजॉन्टल स्केलिंग बनाम वर्टिकल स्केलिंग का एक सरल उदाहरण है:

सर्वरलेस Redis के साथ Laravel परफॉरमेंस बूस्ट करें: एक व्यावहारिक गाइड

एप्लिकेशन को हॉरिजॉन्टली स्केल करते समय, अपने यूजर सेशन और कैश डेटा को स्केलेबल तरीके से संभालना महत्वपूर्ण है।

सर्वरलेस Redis क्लस्टर बनाना

Upstash के साथ, आप इन चरणों का पालन करके 30 सेकंड में एक सर्वरलेस Redis क्लस्टर बना सकते हैं:

  • अपने Upstash अकाउंट में लॉग इन करें।
  • Create Database बटन पर क्लिक करें।
  • अपने Redis क्लस्टर का नाम दर्ज करें और एक क्षेत्र चुनें।
  • Create बटन पर क्लिक करें।

बस! अब आपके पास उपयोग के लिए तैयार एक सर्वरलेस Redis क्लस्टर है।

अपने Redis क्लस्टर के एंडपॉइंट के साथ-साथ पासवर्ड और पोर्ट को नोट करना सुनिश्चित करें।

सर्वरलेस Redis के साथ Laravel कॉन्फ़िगर करना

अब जब आपके पास एक सर्वरलेस Redis क्लस्टर है, तो आप Laravel को इसे किसी अन्य Redis इंस्टेंस की तरह उपयोग करने के लिए कॉन्फ़िगर कर सकते हैं।

Predis पैकेज इंस्टॉल करें

अतीत में, आप अपने 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 क्लस्टर का उपयोग करेगा।

निष्कर्ष

Laravel के साथ सर्वरलेस Redis का उपयोग करना आपके एप्लिकेशन को स्केल करने का एक शानदार तरीका है। यहां तक कि अगर आप Kubernetes क्लस्टर पर Laravel चला रहे हैं, तो आप अभी भी अपने यूजर सेशन और कैश डेटा को स्केलेबल तरीके से स्टोर करने के लिए सर्वरलेस Redis क्लस्टर का उपयोग कर सकते हैं।

Upstash पर अधिक जानकारी के लिए, डॉक्यूमेंटेशन देखें।

अपने Laravel एप्लिकेशन को कैसे स्केल करें, इस पर अधिक जानकारी के लिए निम्नलिखित लेख देखें:

  • How to Set Up a Scalable Laravel 6 Application using Managed Databases and Object Storage
  1. फ्लटर, सर्वरलेस फ्रेमवर्क और अपस्टैश रेडिस के साथ फुल-स्टैक सर्वरलेस ऐप बनाएं - भाग 1 फ्लटर, सर्वरलेस फ्रेमवर्क और अपस्टैश रेडिस के साथ फुल-स्टैक सर्वरलेस ऐप बनाएं - भाग 1

    इस पोस्ट में, हम फ्लटर, सर्वरलेस फ्रेमवर्क, अपस्टैश और डेटा स्टोर करने के लिए रेडिस के साथ एक सर्वरलेस मोबाइल एप्लिकेशन बनाएंगे। अपस्टैश क्या है? अपस्टैश रेडिस के लिए एक सर्वरलेस डेटाबेस है। अपस्टैश के साथ, आप प्रति-रिक्वेस्ट भुगतान करते हैं। इसका मतलब है कि जब डेटाबेस उपयोग में नहीं होता है तो आपस

  1. पाइपलाइन REST API के साथ सर्वरलेस Redis एक्सेस को बढ़ाएं पाइपलाइन REST API के साथ सर्वरलेस Redis एक्सेस को बढ़ाएं

    Upstash नेटिव Redis API के अलावा REST API का समर्थन करता है। REST API डेवलपर्स को सर्वरलेस और एज फ़ंक्शंस से कनेक्शन समस्याओं के बिना अपने Redis तक पहुंचने में मदद करता है। लेकिन यदि आप एक ही फ़ंक्शन में कई Redis कमांड निष्पादित करते हैं तो इसका मतलब है कि आप डेटाबेस को कई बार कॉल करेंगे। हमारे समुद

  1. Cloudflare Workers के साथ एज पर Redis की शक्ति का उपयोग करें Cloudflare Workers के साथ एज पर Redis की शक्ति का उपयोग करें

    एज पर कंप्यूटिंग हाल के वर्षों में सबसे रोमांचक क्षमताओं में से एक है। CDN आपको अपनी फ़ाइलों को अपने उपयोगकर्ताओं के करीब रखने की अनुमति देता है। एज कंप्यूटिंग आपको अपने एप्लिकेशन को अपने उपयोगकर्ताओं के करीब चलाने की अनुमति देता है। यह डेवलपर्स को विश्व स्तर पर वितरित, उच्च-प्रदर्शन एप्लिकेशन बनाने