किसी परियोजना को समय पर वितरित करने का आमतौर पर मतलब है कि आपको जितना संभव हो उतना मौजूदा तकनीक का लाभ उठाने की आवश्यकता है। कस्टम कार्यान्वयन की ओर ले जाने वाले आपके द्वारा किए गए प्रत्येक निर्णय पर विचार किया जाना चाहिए कि आपको अपना स्वयं का समाधान बनाए रखने की भी आवश्यकता है। यही कारण है कि स्ट्रैपी जैसे ओपन-सोर्स टूल आपके अगले प्रोजेक्ट के लिए आरईएसटी एपीआई बनाने का रास्ता हैं।
स्ट्रैपी एक अत्याधुनिक हेडलेस सीएमएस है। यह आपको ग्राफिकल इंटरफ़ेस के साथ अपने स्कीमा को परिभाषित करने की अनुमति देता है, इसलिए गैर-तकनीकी लोग भी डेटा मॉडल कर सकते हैं। आपकी विकास टीम बैकएंड कार्यान्वयन की चिंता किए बिना वेब और मोबाइल एप्लिकेशन बनाने और नई सुविधाएं प्रदान करने पर ध्यान केंद्रित कर सकती है। आखिरकार, एक बड़ा खुला स्रोत समुदाय Strapi का रखरखाव करता है।
अपने बैकएंड को गति देना
अब, स्ट्रैपी SQLite का उपयोग करते समय प्रतिक्रिया देने में अपेक्षाकृत तेज़ है, लेकिन जैसे-जैसे आपका डेटा और उपयोगकर्ता आधार बढ़ता है, यह शुरू करने के लिए सबसे अच्छा समाधान नहीं हो सकता है। बाजार में आने के बाद, आपके पास दुनिया भर में वितरित हजारों उपयोगकर्ता हो सकते हैं।
तो, आपको अपने स्ट्रैपी को स्केल करने की आवश्यकता है और बदले में, उस सभी लोड को संभालने के लिए आपके डेटाबेस परिनियोजन। क्या यह अच्छा नहीं होगा यदि आप किसी प्रकार का कैश प्लग इन कर सकें?
REST कैश दर्ज करें
Strapi REST Cache, Strapi प्लगइन्स का एक संग्रह है। वे वास्तविक डेटाबेस अनुरोधों को कम करते हुए, आपके Strapi ऐप में LRU कैशिंग जोड़ने में आपकी मदद करते हैं।
मेमोरी, काउचबेस और रेडिस समर्थित हैं, और आप एक कस्टम प्रदाता भी लिख सकते हैं। यहां रोमांचक हिस्सा रेडिस कैश प्रदाता है जो हमें मिनटों में अपस्टैश रेडिस से जुड़ने की अनुमति देता है!
आप अधिकांश परिदृश्यों में अपस्टैश रेडिस का उपयोग कर सकते हैं जो आप रेडिस का उपयोग करेंगे। अंतर यह है कि आप कुछ ही क्लिक में Upstash Redis को सेट कर सकते हैं। यह वैश्विक प्रतिकृति के साथ भी आता है, इसलिए आपके स्ट्रैपी इंस्टेंस को निकटतम प्रतिकृति पर भेज दिया जाएगा, जो कि तेज़ कैश के लिए महत्वपूर्ण है। और यह सर्वर रहित है, इसलिए आप केवल उसी के लिए भुगतान करते हैं जिसका आप उपयोग करते हैं।
तो, आइए देखें कि कैसे हम Upstash Redis के साथ Strapi को ऊपर उठा सकते हैं और कैसे चला सकते हैं!
आवश्यकताएँ
इस ट्यूटोरियल के लिए, आपको एक Upstash अकाउंट और एक Node.js इंस्टालेशन की आवश्यकता होगी। आपको यार्न की भी आवश्यकता है, जो कि Strapi का पसंदीदा पैकेज मैनेजर है।
एक Strapi प्रोजेक्ट बनाना
यदि आपके पास पहले से ही एक मौजूदा स्ट्रैपी परियोजना है, तो आप सीधे "रीस्ट कैश जोड़ना" अनुभाग पर जा सकते हैं। निम्न चरण केवल काम करने के लिए डेटा सेट करने के लिए हैं।
पहला कदम Strapi के साथ एक नया बैकएंड बना रहा है। आप इसे निम्न आदेश के साथ कर सकते हैं:
$ npx create-strapi-app@latest strapi-upstash-redis-cache
कमांड खत्म होने के बाद, Strapi ब्राउज़र खोलेगा और आपसे डेटा मॉडल और पहली सामग्री बनाने के लिए व्यवस्थापक लॉगिन विवरण मांगेगा।
सामग्री-प्रकार निर्माता के साथ मॉडलिंग डेटा
लॉग इन करने के बाद, आप Strapi कंटेंट-टाइप बिल्डर के साथ अपना पहला डेटा संग्रह मॉडल कर सकते हैं। चित्र 1 दिखाता है कि आप Strapi admin console में सामग्री-प्रकार का निर्माता कहां पा सकते हैं।
"नया संग्रह प्रकार बनाएं" लिंक पर क्लिक करें और एक नया प्रकार बनाएं। इसे "आलेख" नाम दें और दो साधारण टेक्स्ट फ़ील्ड जोड़ें। एक फ़ील्ड "शीर्षक" नामक छोटे टेक्स्ट के लिए है और दूसरा "सामग्री" नामक लंबे टेक्स्ट के लिए है।
चित्र 2 दिखाता है कि "सहेजें" बटन पर क्लिक करने से पहले प्रकार कैसा दिखना चाहिए।
उसके बाद, हमें उस सामग्री प्रकार का वास्तविक उदाहरण चाहिए।
Content Manager के साथ सामग्री बनाना
आप चित्र 1 में सामग्री प्रबंधक का स्थान देख सकते हैं। उस पर नेविगेट करें और शीर्ष दाईं ओर "नई प्रविष्टि बनाएं" बटन पर क्लिक करें।
चित्र 3 में, आप नई सामग्री प्रविष्टि UI देख सकते हैं। "सहेजें" और "प्रकाशित करें" बटन पर क्लिक करना न भूलें; अन्यथा, आपके पास एक निजी ड्राफ़्ट होगा जो सार्वजनिक API के माध्यम से उपलब्ध नहीं होगा।
सामग्री-प्रकार के लिए अनुमतियां सेट करना
हमारे पास एक लेख प्रकार और एक वास्तविक लेख है, लेकिन यह जनता के लिए सुलभ नहीं है। इसे बदलने के लिए, हमें सार्वजनिक भूमिका को अद्यतन करने की आवश्यकता है। चित्र 4 दिखाता है कि आप इसे नेविगेशन में कहाँ पा सकते हैं।
सार्वजनिक भूमिका पर क्लिक करें और फिर "अनुच्छेद" अनुमतियों पर क्लिक करें। यहां आपको "ढूंढें" और "ढूंढें" का चयन करने की आवश्यकता है और इस तरह "सहेजें" पर क्लिक करें, कोई भी व्यक्ति जो एपीआई खोल रहा है वह सभी लेखों को सूचीबद्ध कर सकता है और एक लेख लोड कर सकता है।
जब आप ब्राउज़र में लेख संसाधन खोलते हैं, तो आपको हमारा नया लेख देखना चाहिए। डिफ़ॉल्ट Strapi सेटिंग्स आपको निम्न URL पर संसाधन प्रदान करेंगी:
https://localhost:1337/api/articles
प्रतिक्रिया कुछ इस तरह दिखनी चाहिए:
{
"data": [
{
"id": 2,
"attributes": {
"title": "My First Article",
"content": "This is an article!",
"createdAt": "2022-04-06T15:29:48.104Z",
"updatedAt": "2022-04-06T15:29:48.949Z",
"publishedAt": "2022-04-06T15:29:48.948Z"
}
}
],
"meta": {
"pagination": {
"page": 1,
"pageSize": 25,
"pageCount": 1,
"total": 1
}
}
}
REST कैश जोड़ना
अंत में, Upstash Redis के साथ कैशिंग जोड़ने का रोमांचक हिस्सा!
ऐसा करने के लिए, आपको पहले तीन पैकेज स्थापित करने होंगे।
yarn add strapi-plugin-redis \
strapi-plugin-rest-cache \
strapi-provider-rest-cache-redis
ये तीन पैकेज Strapi को आपके Upstash Redis डेटाबेस में डेटा भेजने की अनुमति देंगे।
अपस्टैश Redis डेटाबेस बनाना
कैश को सही तरीके से कॉन्फ़िगर करने के लिए, हमें एक रेडिस इंस्टेंस के लिए एक URL की आवश्यकता है। इसके लिए हमें Upstash Redis डेटाबेस बनाना होगा। तो अपने ब्राउज़र में Upstash कंसोल खोलें और "डेटाबेस बनाएं" बटन पर क्लिक करें।
निर्माण प्रक्रिया समाप्त होने के बाद, आप डेटाबेस URL को पकड़ सकते हैं, जिसमें केवल कुछ सेकंड लगने चाहिए। "नोड" टैब चुनें, और चित्र 5 में देखे गए कोड उदाहरण से URL को कॉपी करें।
REST कैश को कॉन्फ़िगर करना
REST कैश को कॉन्फ़िगर करने के लिए, आपको config/plugins.js
. पर एक फ़ाइल बनानी होगी निम्नलिखित सामग्री के साथ:
module.exports = {
redis: {
config: {
connections: {
default: { connection: "REDIS_URL" },
},
},
},
"rest-cache": {
config: {
provider: { name: "redis" },
strategy: {
contentTypes: [{ contentType: "api::article.article", hitpass: false }],
//debug: true,
},
},
},
};
redis
. में फ़ील्ड में, हम कनेक्शन को Upstash Redis डेटाबेस से कॉन्फ़िगर करते हैं। पिछले चरण के यूआरएल में स्ट्रापी के लिए आवश्यक सभी क्रेडेंशियल शामिल हैं।
रेस्ट-कैश फ़ील्ड में, हम कैश को बताते हैं कि उसे किस प्रदाता का उपयोग करना चाहिए और किस प्रकार की सामग्री को कैश किया जाना चाहिए। हमारे मामले में, यह सिर्फ लेख सामग्री प्रकार है। hitpass: false
सुनिश्चित करता है कि सामग्री हमेशा कैश की गई है, भले ही कुछ प्रमाणीकरण हुआ हो।
अगर आप debug: true
. पर टिप्पणी नहीं करते हैं , आप कुछ डिबग आउटपुट देखेंगे। यह आउटपुट यह देखना आसान बनाता है कि कैश काम करता है या नहीं।
Strapi डिफ़ॉल्ट रूप से SQLite का उपयोग करता है, जो आपके विकास कंप्यूटर पर इन-प्रोसेस चलता है, इसलिए यह इस सिस्टम से किलोमीटर दूर तैनात Upstash Redis की तुलना में तेज़ होगा। वास्तविक डेटाबेस सर्वर के साथ उत्पादन वातावरण में चीजें काफी भिन्न दिखाई देंगी।
कैश का परीक्षण करना
सब कुछ ठीक से कॉन्फ़िगर करने के बाद, हम विकास सर्वर को पुनः आरंभ कर सकते हैं:
yarn run develop
जब सर्वर चालू होता है और चल रहा होता है, तो हम इसे इस यूआरएल के साथ फिर से एक्सेस कर सकते हैं:
https://localhost:1337/api/articles
हमारा डेटाबेस पहले अनुरोध को पूरा करेगा, और Upstash Redis निम्नलिखित कार्य करेगा।
निष्कर्ष
जब हम Upstash Redis का उपयोग करते हैं, तो Strapi परिनियोजन को गति देने में केवल कुछ मिनट लगते हैं। Upstash कंसोल हमें एक URL देता है जिसे हम केवल कॉन्फिगर में पेस्ट कर सकते हैं, और वह यह है।
पहला Upstash Redis डेटाबेस और भी मुफ़्त है, इसलिए इसे देखें; क्रेडिट कार्ड की आवश्यकता नहीं है!