जब डेटाबेस और क्लाइंट एक ही क्षेत्र में हों, तो Redis के साथ 1 ms लेटेंसी आसान होती है। लेकिन अगर आप चाहते हैं कि ग्राहकों को विश्व स्तर पर वितरित किया जाए तो विलंबता 100 एमएस से अधिक हो जाती है। हमने इसे दूर करने के लिए एज कैशिंग का निर्माण किया।
एज कैशिंग
एज कैशिंग के साथ, सीडीएन की तरह, आरईएसटी प्रतिक्रियाएं पूरी दुनिया में किनारे के स्थानों पर कैश की जाती हैं। एज कैशिंग सक्षम होने पर हम औसतन 5ms वैश्विक विलंबता देखते हैं। हमारा बेंचमार्क एप्लिकेशन देखें जहां हम 10 अलग-अलग क्षेत्रों में स्थित क्लाइंट्स से लेटेंसी नंबर रिकॉर्ड करते हैं। हम url और सादे REST url को किनारे करने के लिए किए गए अनुरोधों के बीच विलंबता की तुलना करते हैं। जैसे-जैसे सर्वर और क्लाइंट के बीच की दूरी बढ़ती है, एज कैशिंग का प्रभाव बढ़ता जाता है।
स्वयं परीक्षण चलाने के लिए यहां क्लिक करें।
यूज केस
वेब/मोबाइल (बैकएंडलेस) क्लाइंट
Upstash उपयोगकर्ताओं को बिना किसी बैकएंड के डेटाबेस तक पहुंचने में सक्षम बनाने के लिए केवल पढ़ने के लिए प्रमाणीकरण टोकन प्रदान करता है। आप वेब या मोबाइल एप्लिकेशन से सीधे रेडिस तक पहुंच सकते हैं। इस आर्किटेक्चर में क्लाइंट कहीं भी हो सकते हैं। अपने उपयोगकर्ताओं के निकटतम स्थानों में डेटा को कैश करना बहुत मायने रखता है।
बहु क्षेत्र सर्वर रहित आर्किटेक्चर
आप वैश्विक विलंबता को कम करने के लिए अपने AWS लैम्ब्डा फ़ंक्शन को कई क्षेत्रों में चला सकते हैं। Vercel/Netlify फ़ंक्शन कुछ कॉन्फ़िगरेशन में विभिन्न क्षेत्रों में चलते हैं। सर्वर रहित रेडिस एज कैशिंग के साथ जहां भी आपके सर्वर रहित कार्य हैं, आपको तेज़ डेटा देगा।
एज फंक्शन
एज कंप्यूटिंग (क्लाउडफ्लेयर वर्कर्स आदि) विश्व स्तर पर तेजी से एप्लिकेशन बनाने का एक लोकप्रिय तरीका बनता जा रहा है। एज फंक्शंस के साथ चुनौती यह है कि आपके पास अपना डेटा रखने के लिए कई विकल्प नहीं हैं। एज कैशिंग के साथ रेडिस कम विलंबता और हल्केपन के साथ किनारे के कार्यों के लिए बहुत उपयुक्त है।
आरंभ करें
आप अपस्टैश कंसोल में एज कैशिंग को सक्षम कर सकते हैं। सावधान रहें कि एज कैशिंग की एक अतिरिक्त लागत है।
एज कैशिंग सक्षम होने के बाद, आप किनारे URL को REST API संवाद में पा सकते हैं। एज कैशिंग केवल GET कॉल के लिए उपलब्ध है। अपडेट (POST) के लिए, आप अभी भी सादे REST API का उपयोग कर सकते हैं।
डिफ़ॉल्ट रूप से, कैश्ड प्रतिसाद 30 सेकंड में समाप्त हो जाते हैं। आप इसे Cache-Control: max-age=<seconds>
. से नियंत्रित कर सकते हैं हेडर।
उदाहरण:
curl https://us1-smart-bunny-32732.edge-c.upstash.io/get/foo \
-H "Authorization: Bearer 2dfgf98elrg0w009c842z2adfdde9132"
-H "Cache-Control: max-age=50"
उपरोक्त यूआरएल के लिए पहला अनुरोध मूल से प्रतिक्रिया प्राप्त करेगा। अगले अनुरोध किनारे के स्थानों से प्राप्त किए जाएंगे। कैश्ड प्रतिसाद प्रत्येक किनारे के स्थान पर 50 सेकंड के बाद समाप्त हो जाएंगे।
एज कैशिंग बनाम ग्लोबल डेटाबेस
एक वैश्विक डेटाबेस बनाना (अपडेट:यह जारी किया गया है, और जानें) रेडिस को कई क्षेत्रों में दोहराकर हमारे रोडमैप में है। वैश्विक डेटाबेस आपको बेहतर स्थिरता की गारंटी देंगे और लेखन को भी दोहराकर विलंबता लिखेंगे। लेकिन डेटाबेस को सभी क्षेत्रों में दोहराने के लिए यह बहुत महंगा हो सकता है। फिर भी आपको सभी स्थानों पर विलंबता को कम करने के लिए कैशिंग की आवश्यकता हो सकती है। तो एज कैशिंग और ग्लोबल प्रतिकृति ऐसे समाधान हैं जो प्रतिस्पर्धा के बजाय एक दूसरे को पूरा करते हैं। यदि आपका उपयोग मामला अंततः लगातार पढ़ने को सहन करता है, तो एज कैशिंग पहले से ही एक बेहतरीन समाधान है जो वैश्विक तेज़ डेटा प्रदान करता है।
सर्वर रहित और एज डेटा पर हमारे प्रयासों के बारे में आपसे सुनने के लिए उत्सुक हैं। ट्विटर और कलह पर हमसे बात करें।