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

Upstash Redis को Cloudflare Workers से आसानी से कनेक्ट करें: एक सर्वरलेस URL शॉर्टनर बनाएं

Cloudflare ने हाल ही में Cloudflare Workers के लिए Upstash इंटीग्रेशन जारी किया है। इससे Workers पर Upstash उत्पादों का उपयोग करना और भी आसान हो जाता है। इस ब्लॉग पोस्ट में, हम एक सर्वरलेस URL शॉर्टनर बनाने के लिए Upstash Redis इंटीग्रेशन का उपयोग करने जा रहे हैं।

शुरुआत करना

इस प्रोजेक्ट को बनाने के चरण यहां दिए गए हैं:

  • एक Upstash डेटाबेस सेट अप करें
  • Cloudflare पर वर्कर बनाएं
  • Cloudflare Workers को Upstash के साथ एकीकृत करें
  • प्रोजेक्ट एल्गोरिदम लागू करें।
  • अपना एप्लिकेशन डिप्लॉय करें

डेटाबेस बनाना

Upstash कंसोल पर नेविगेट करें, और Redis अनुभाग में Create database बटन पर क्लिक करके अपने लिए एक Redis डेटाबेस बनाएं।

Upstash Redis को Cloudflare Workers से आसानी से कनेक्ट करें: एक सर्वरलेस URL शॉर्टनर बनाएं

बस, आपका डेटाबेस पूरी तरह सेट है!

Cloudflare Worker बनाना

हम Cloudflare CLI टूल का उपयोग करके वर्कर जनरेट करने जा रहे हैं। यह एक बहुत सरल प्रक्रिया है। बस अपना टर्मिनल खोलें और नीचे दी गई कमांड टाइप करें:

npm create cloudflare@latest 

इस कमांड को निष्पादित करने से आप एप्लिकेशन के विकल्पों और कॉन्फ़िगरेशन के माध्यम से आगे बढ़ेंगे। अंत में, यह आपसे Cloudflare में लॉग इन करने का अनुरोध करेगा। नीचे मेरा कॉन्फ़िगरेशन और परिणामी आउटपुट का एक उदाहरण है:

हमने एक ही लाइन कमांड का उपयोग करके एप्लिकेशन बनाया और डिप्लॉय किया है। इस कमांड ने इस तरह के एक फ़ोल्डर को इनिशियलाइज़ किया होगा:

/url-shortener src └── worker.ts node_modules package-lock.json package.json tsconfig.json wrangler.toml

Upstash इंटीग्रेशन को सक्षम करना भी उतना ही सीधा होगा।

Cloudflare - Upstash इंटीग्रेशन

Cloudflare डैशबोर्ड पर पहुंचें और उसी खाते से लॉग इन करें जिससे आपने url-shortener एप्लिकेशन बनाया है। फिर, साइडबार के Workers & Pages > Overview अनुभाग पर नेविगेट करें। यहां, आपको url-shortener एप्लिकेशन सूचीबद्ध मिलेगा।

Upstash Redis को Cloudflare Workers से आसानी से कनेक्ट करें: एक सर्वरलेस URL शॉर्टनर बनाएं

एप्लिकेशन पर क्लिक करने से आप एप्लिकेशन विवरण पेज पर पहुंच जाएंगे, जहां हम इंटीग्रेशन प्रक्रिया करेंगे। एप्लिकेशन विवरण में Settings टैब पर स्विच करें, और Integrations अनुभाग पर आगे बढ़ें। आपको विभिन्न वर्कर इंटीग्रेशन सूचीबद्ध दिखाई देंगे। आगे बढ़ने के लिए, Upstash Redis से जुड़े Add Integration बटन पर क्लिक करें।

Upstash Redis को Cloudflare Workers से आसानी से कनेक्ट करें: एक सर्वरलेस URL शॉर्टनर बनाएं

इंटीग्रेशन पेज पर, अपने Upstash खाते से कनेक्ट करें। फिर, ड्रॉपडाउन मेनू से url-shortener डेटाबेस चुनें। Save button दबाकर प्रक्रिया को अंतिम रूप दें।

नोट: Configure secrets चरण पर सीक्रेट नामों में कोई बदलाव न करें। इन क्रेडेंशियल को कोड में Redis.fromEnv(env) लाइन द्वारा UPSTASH_REDIS_REST_URL और UPSTASH_REDIS_REST_TOKEN के रूप में स्वचालित रूप से लिया जाएगा।

Upstash Redis को Cloudflare Workers से आसानी से कनेक्ट करें: एक सर्वरलेस URL शॉर्टनर बनाएं

URL शॉर्टनर लागू करना

हमारा कार्यान्वयन काफी सरल होगा। इसमें दो कार्यक्षमताएं होंगी:

  • जब POST विधि का उपयोग करके एक URL भेजा जाता है, तो उस URL को एक यादृच्छिक रूप से उत्पन्न कुंजी दी जाएगी। यह कुंजी-URL जोड़ी पुनर्प्राप्ति के लिए Redis में संग्रहीत की जाएगी। कुंजी को वर्कर URL में पथ के रूप में जोड़ा जाएगा और उपयोगकर्ता को <YOUR_WORKER_URL>/<KEY> प्रारूप में भेजा जाएगा।

  • जब कोई उपयोगकर्ता पहले से जोड़ी गई कुंजी को पथ के रूप में वर्कर URL के साथ एक्सेस करता है, तो कुंजी के संबंधित मान को Redis से पुनः प्राप्त किया जाएगा। उपयोगकर्ता को तब 307 प्रतिक्रिया कोड के साथ इस URL पर रीडायरेक्ट किया जाएगा।

हम src/worker.ts फ़ाइल में एप्लिकेशन को लागू करेंगे। नीचे हमारे URL शॉर्टनर का बुनियादी कार्यान्वयन है:

import { Redis } from "@upstash/redis/cloudflare"; export interface Env { UPSTASH_REDIS_REST_URL: string; UPSTASH_REDIS_REST_TOKEN: string; } export default { async fetch( request: Request, env: Env, ctx: ExecutionContext, ): Promise<Response> { const redis = Redis.fromEnv(env); /* generateRandomKey फ़ंक्शन एक 7 अंकों की अल्फ़ान्यूमेरिक कुंजी लौटाता है। यदि Redis में एक समान कुंजी मौजूद है, तो यह एक नई कुंजी बनाएगा। */ async function generateRandomKey(): Promise<string> { const key: string = btoa( crypto.getRandomValues(new Uint8Array(2)).toString(), ).replaceAll("=", ""); if (await redis.exists(key)) { return generateRandomKey(); } return key; } /* यदि अनुरोध विधि POST है, तो अनुरोध शरीर से "longUrl" फ़ील्ड निकाला जाएगा और इस URL के लिए एक नई कुंजी उत्पन्न की जाएगी। फिर, इस कुंजी-मान जोड़ी को Redis में स्थायी किया जाएगा। */ if (request.method === "POST") { const requestUrl = request.url; const body = await request.text(); const { longUrl } = JSON.parse(body); const key = await generateRandomKey(); redis.set(key, longUrl); const responseUrl = requestUrl + key; return new Response(responseUrl); } const slug: string = request.url.split("/").pop() || ""; const url = (await redis.get(slug)) as string; /* यदि स्लग Redis DB में कुंजी के रूप में मौजूद है, तो उपयोगकर्ता को मान में URL पर रीडायरेक्ट किया जाएगा। यदि स्लग Redis में मौजूद नहीं है, या यह बिल्कुल मौजूद नहीं है, तो एक त्रुटि लौटाई जाएगी। */ if (url) { return Response.redirect(url, 307); } else { const errorText = !slug ? "Please provide a slug." : `Slug ${slug} not found. `; return new Response(errorText, { status: 404 }); } }, };

अब जब हमारा एल्गोरिदम तैयार है, तो केवल एक चरण शेष है: एप्लिकेशन डिप्लॉय करना। टर्मिनल से url-shortener फ़ोल्डर पर नेविगेट करें, और नीचे दी गई कमांड चलाएं:

npm run deploy

हमारा Cloudflare Worker अब चालू और चल रहा है! आप इसे या तो एप्लिकेशन डैशबोर्ड में, या एक curl अनुरोध के माध्यम से परीक्षण कर सकते हैं। यहां आपके लिए एक उदाहरण अनुरोध है। आप URL को अपने वर्कर URL से बदल सकते हैं, या मेरे कार्यान्वयन के साथ परीक्षण कर सकते हैं:

curl -X POST https://url-shortener.fahreddin.workers.dev \ -d '{ "longUrl" : "https://google.com" }'

प्रतिक्रिया URL पर क्लिक करने से आप https://google.com पर रीडायरेक्ट हो जाएंगे।

निष्कर्ष

ट्यूटोरियल का अनुसरण करने के लिए धन्यवाद!

जैसा कि आपने खोजा है, सर्वरलेस फ़ंक्शन और Upstash Redis की शक्ति का संयोजन आपके प्रोजेक्ट्स के लिए संभावनाओं की एक दुनिया खोलता है। इस जोड़ी की बहुमुखी प्रतिभा और दक्षता आपको ऐसे समाधान बनाने के लिए सशक्त बनाती है जो न केवल अभिनव हैं बल्कि उल्लेखनीय रूप से प्रतिक्रियाशील भी हैं।

याद रखें, यह गाइड सिर्फ शुरुआत है। इस प्रोजेक्ट को विस्तारित और सुधारने की कोई सीमा नहीं है।

यदि आपके कोई प्रश्न या समस्याएं हैं, तो बेझिझक fahreddin@upstash.com पर मुझसे संपर्क करें।

हैप्पी कोडिंग!

  1. जावा में डिफ़ॉल्ट मेथड्स का उपयोग करके डायमंड समस्या कैसे हल करें जावा में डिफ़ॉल्ट मेथड्स का उपयोग करके डायमंड समस्या कैसे हल करें

    इनहेरिटेंस दो क्लासेस के बीच एक संबंध है जहां एक क्लास दूसरी क्लास के गुणों को इनहेरिट करती है। इस संबंध को extends कीवर्ड का उपयोग करके परिभाषित किया जा सकता है -public class A extends B{}जो क्लास गुणों को इनहेरिट करती है उसे सब क्लास या चाइल्ड क्लास के रूप में जाना जाता है और जिस क्लास के गुणों को

  1. पायथन प्रोग्राम: संख्या के फैक्टर्स का न्यूनतम योग ढूंढें पायथन प्रोग्राम: संख्या के फैक्टर्स का न्यूनतम योग ढूंढें

    इस लेख में, हम नीचे दिए गए प्रॉब्लम स्टेटमेंट के समाधान के बारे में सीखेंगे: प्रॉब्लम स्टेटमेंट एक नंबर इनपुट दिए जाने पर, दी गई संख्या के फैक्टर्स का न्यूनतम योग ढूंढें। यहां हम सभी फैक्टर्स और उनके संबंधित योग की गणना करेंगे और फिर उनमें से न्यूनतम ढूंढेंगे। तो संख्या के गुणनफल का न्यूनतम योग ढू

  1. C++ में समबाहु त्रिभुज के परिक्षेपक वृत्त का क्षेत्रफल गणना करें C++ में समबाहु त्रिभुज के परिक्षेपक वृत्त का क्षेत्रफल गणना करें

    जैसा कि नाम से पता चलता है, समबाहु त्रिभुज वह है जिसकी भुजाएं समान होती हैं और इसके आंतरिक कोण भी 60° प्रत्येक के समान होते हैं। इसे नियमित त्रिभुज के रूप में भी जाना जाता है क्योंकि यह एक नियमित बहुभुज है।समबाहु त्रिभुज के गुण हैंसमान लंबाई की 3 भुजाएंसमान डिग्री के आंतरिक कोण जो 60 हैंकिसी बहुभुज