समय पर प्रोजेक्ट डिलीवर करने का आमतौर पर मतलब है कि आपको जितना संभव हो उतना मौजूदा तकनीक का लाभ उठाने की आवश्यकता है। आपके द्वारा किया गया हर निर्णय जो कस्टम इम्प्लीमेंटेशन की ओर ले जाता है, उसे इस बात पर विचार करना होगा कि आपको अपने स्वयं के समाधान को बनाए रखने की भी आवश्यकता है। यही कारण है कि Strapi जैसे ओपन-सोर्स टूल आपके अगले प्रोजेक्ट के लिए REST API बनाने का तरीका है।
Strapi एक स्टेट-ऑफ-द-आर्ट हेडलेस CMS है। यह आपको ग्राफिकल इंटरफेस के साथ अपना स्कीमा परिभाषित करने की अनुमति देता है, इसलिए गैर-तकनीकी लोग भी डेटा मॉडल कर सकते हैं। आपकी डेवलपमेंट टीम बैकएंड इम्प्लीमेंटेशन की चिंता किए बिना वेब और मोबाइल ऐप बनाने और नई सुविधाएं डिलीवर करने पर ध्यान केंद्रित कर सकती है। आखिरकार, एक बड़ा ओपन-सोर्स समुदाय Strapi को बनाए रखता है।
अपने बैकएंड को तेज करना
अब, SQLite का उपयोग करते समय Strapi प्रतिक्रियाएं देने में अपेक्षाकृत तेज है, लेकिन जैसे-जैसे आपका डेटा और यूजर बेस बढ़ता है, यह शुरू करने के लिए सबसे अच्छा समाधान नहीं हो सकता है। बाजार में आने के बाद, आप दुनिया भर में वितरित हजारों उपयोगकर्ताओं के साथ समाप्त हो सकते हैं।
तो, आपको अपने Strapi को स्केल आउट करने की आवश्यकता है, और बदले में, उस सभी लोड को संभालने के लिए अपने डेटाबेस डिप्लॉयमेंट को स्केल करना होगा। क्या यह अच्छा नहीं होगा यदि आप बस किसी प्रकार का कैश प्लग इन कर सकें?
REST Cache दर्ज करें
Strapi REST Cache Strapi प्लगइन्स का एक संग्रह है। वे आपके Strapi ऐप में LRU कैशिंग जोड़ने में आपकी मदद करते हैं, वास्तविक डेटाबेस अनुरोधों को कम करते हैं।
मेमोरी, Couchbase, और Redis समर्थित हैं, और आप एक कस्टम प्रोवाइडर भी लिख सकते हैं। यहां रोमांचक हिस्सा Redis कैश प्रोवाइडर है जो हमें मिनटों में Upstash Redis से कनेक्ट करने की अनुमति देता है!
आप Upstash Redis का उपयोग उन अधिकांश परिदृश्यों में कर सकते हैं जहां आप Redis का उपयोग करेंगे। अंतर यह है कि आप Upstash Redis को कुछ क्लिक्स के साथ सेट अप कर सकते हैं। यह ग्लोबल रेप्लिकेशन के साथ भी आता है, इसलिए आपके Strapi इंस्टेंस निकटतम रेप्लिका पर रूट हो जाएंगे, जो फास्ट कैश के लिए महत्वपूर्ण है। और यह सर्वरलेस है, इसलिए आप केवल उसी के लिए भुगतान करते हैं जो आप उपयोग करते हैं।
तो, आइए देखें कि हम Strapi को Upstash Redis के साथ कैसे चला सकते हैं!
पूर्व-आवश्यकताएं
इस ट्यूटोरियल के लिए, आपको Upstash अकाउंट और Node.js इंस्टॉलेशन की आवश्यकता है। आपको Yarn की भी आवश्यकता है, जो Strapi का पसंदीदा पैकेज मैनेजर है।
Strapi प्रोजेक्ट बनाना
यदि आपके पास पहले से कोई मौजूदा Strapi प्रोजेक्ट है तो आप सीधे "REST Cache जोड़ना" सेक्शन पर जा सकते हैं। निम्नलिखित चरण केवल काम करने के लिए डेटा सेट अप करने के लिए हैं।
पहला चरण Strapi के साथ एक नया बैकएंड बनाना है। आप निम्नलिखित कमांड के साथ ऐसा कर सकते हैं:
$ npx create-strapi-app@latest strapi-upstash-redis-cache
कमांड समाप्त होने के बाद, Strapi ब्राउज़र खोलेगा और एडमिन लॉगिन विवरण मांगेगा ताकि डेटा मॉडल और पहली कंटेंट बनाई जा सके।
कंटेंट टाइप बिल्डर के साथ डेटा मॉडलिंग
लॉग इन करने के बाद, आप Strapi कंटेंट टाइप बिल्डर के साथ अपना पहला डेटा कलेक्शन मॉडल कर सकते हैं। चित्र 1 दिखाता है कि आप Strapi एडमिन कंसोल में कंटेंट टाइप बिल्डर कहां पा सकते हैं।

"Create new collection type" लिंक पर क्लिक करें और एक नया प्रकार बनाएं। इसे "Article" नाम दें और दो सरल टेक्स्ट फील्ड जोड़ें। एक फील्ड "title" नामक शॉर्ट टेक्स्ट के लिए है, और एक "content" नामक लॉन्ग टेक्स्ट के लिए है।
चित्र 2 दिखाता है कि "Save" बटन पर क्लिक करने से पहले प्रकार कैसा दिखना चाहिए।

उसके बाद, हमें उस कंटेंट प्रकार का एक वास्तविक इंस्टेंस चाहिए।
कंटेंट मैनेजर के साथ कंटेंट बनाना
आप चित्र 1 में कंटेंट मैनेजर का स्थान देख सकते हैं। उस पर नेविगेट करें और ऊपर दाईं ओर "Create new entry" बटन पर क्लिक करें।
चित्र 3 में, आप नई कंटेंट एंट्री UI देख सकते हैं। "Save" और "Publish" बटन पर क्लिक करना न भूलें; अन्यथा, आपके पास एक प्राइवेट ड्राफ्ट होगा जो पब्लिक API के माध्यम से सुलभ नहीं है।

कंटेंट प्रकार के लिए अनुमतियाँ सेट करना
हमारे पास एक आर्टिकल प्रकार और एक वास्तविक आर्टिकल है, लेकिन यह पब्लिक के लिए सुलभ नहीं है। इसे बदलने के लिए, हमें पब्लिक रोल को अपडेट करने की आवश्यकता है। चित्र 4 दिखाता है कि आप इसे नेविगेशन में कहां पा सकते हैं।

पब्लिक रोल पर क्लिक करें और फिर "Article" अनुमतियों पर। यहां आपको "find" और "findOne" चुनना होगा और "Save" पर क्लिक करना होगा, इस तरह कोई भी उस API को खोलकर सभी आर्टिकल सूचीबद्ध कर सकता है और एक आर्टिकल लोड कर सकता है।
जब आप ब्राउज़र में आर्टिकल संसाधन खोलते हैं, तो आपको हमारा नया आर्टिकल दिखाई देना चाहिए। डिफ़ॉल्ट 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 Cache जोड़ना
अंत में, Upstash Redis के साथ कैशिंग जोड़ने का रोमांचक हिस्सा!
ऐसा करने के लिए, आपको पहले तीन पैकेज इंस्टॉल करने होंगे।
yarn add strapi-plugin-redis \ strapi-plugin-rest-cache \ strapi-provider-rest-cache-redis
ये तीन पैकेज Strapi को आपके Upstash Redis डेटाबेस में डेटा भेजने की अनुमति देंगे।
Upstash Redis डेटाबेस बनाना
कैश को सही ढंग से कॉन्फ़िगर करने के लिए, हमें एक Redis इंस्टेंस का URL चाहिए। इसके लिए, हमें Upstash Redis डेटाबेस बनाना होगा। तो अपने ब्राउज़र में Upstash Console खोलें और "Create database" बटन पर क्लिक करें।
निर्माण प्रक्रिया समाप्त होने के बाद, आप डेटाबेस URL ले सकते हैं, जिसमें केवल सेकंड लगने चाहिए। "Node" टैब चुनें, और कोड उदाहरण से URL कॉपी करें जैसा कि चित्र 5 में देखा गया है।

REST Cache कॉन्फ़िगर करना
REST cache को कॉन्फ़िगर करने के लिए, आपको 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 डेटाबेस से कनेक्शन कॉन्फ़िगर करते हैं। पिछले चरण का URL Strapi के लिए आवश्यक सभी क्रेडेंशियल्स रखता है।
rest-cache फील्ड में, हम कैश को बताते हैं कि उसे किस प्रोवाइडर का उपयोग करना चाहिए और किस कंटेंट प्रकार को कैश किया जाना चाहिए। हमारे मामले में, यह सिर्फ आर्टिकल कंटेंट प्रकार है। hitpass: false सुनिश्चित करता है कि कंटेंट हमेशा कैश्ड रहे, भले ही कुछ प्रमाणीकरण हुआ हो।
यदि आप debug: true को अनकमेंट करते हैं, तो आपको कुछ डिबग आउटपुट दिखाई देगा। यह आउटपुट यह देखने में आसान बनाता है कि कैश काम करता है या नहीं।
Strapi डिफ़ॉल्ट रूप से SQLite का उपयोग करता है, जो आपके डेवलपमेंट कंप्यूटर पर इन-प्रोसेस चलता है, इसलिए यह Upstash Redis की तुलना में तेज होगा जो इस सिस्टम से किलोमीटर दूर तैनात है। चीजें प्रोडक्शन वातावरण में एक वास्तविक डेटाबेस सर्वर के साथ काफी अलग दिखेंगी।
कैश का टेस्ट करना
सब कुछ सही ढंग से कॉन्फ़िगर करने के बाद, हम डेवलपमेंट सर्वर को रीस्टार्ट कर सकते हैं:
yarn run develop
जब सर्वर चालू और चल रहा हो, तो हम इसे फिर से इस URL से एक्सेस कर सकते हैं:
https://localhost:1337/api/articles
हमारा डेटाबेस पहले अनुरोध की सेवा करेगा, और Upstash Redis बाद वाले करेगा।
निष्कर्ष
Upstash Redis का उपयोग करके Strapi डिप्लॉयमेंट को तेज करने में केवल कुछ मिनट लगते हैं। Upstash Console हमें एक URL देता है जिसे हम बस कॉन्फिग में पेस्ट कर सकते हैं, और बस।
पहला Upstash Redis डेटाबेस फ्री भी है, तो इसे देखें; क्रेडिट कार्ड की आवश्यकता नहीं!