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

Upstash Redis SDK v1.0.0 पेश: कनेक्शनलेस, सर्वरलेस-रेडी Redis क्लाइंट

आज, हम @upstash/redis v1.0.0 की घोषणा कर रहे हैं।

@upstash/redis एकमात्र कनेक्शनलेस (HTTP-आधारित) Redis क्लाइंट है जिसे सर्वरलेस के लिए डिज़ाइन किया गया है और Cloudflare Workers और fastly के साथ संगत है।

v1.0.0 में क्या नया है?

संस्करण 1.0.0 पिछली लाइब्रेरी का पूर्ण पुनर्लेखन है। हमारे द्वारा प्राप्त सबसे बड़े फीचर अनुरोधों में पाइपलाइन सपोर्ट और बेहतर टाइप सेफ्टी शामिल थे। इन नई सुविधाओं की प्रकृति के कारण v1 बैकवर्ड्स संगत नहीं है, हालांकि पुराना संस्करण काम करना जारी रखेगा क्योंकि अंतर्निहित REST API नहीं बदला है।

अधिकांश कमांड्स उसी सिंटैक्स का पालन करते हैं जिनका आप Redis से उपयोग करते हैं जैसे redis.setex("key", 2, "value")। दूसरों के लिए, जैसे hset हम (डी)सीरियलाइज़ेशन की मात्रा को कम करने के लिए उपयोग में आसान API प्रदान करते हैं जिसे आपको स्वयं करने की आवश्यकता है:

await redis.hset("123", { id: "123", name: { first: "andreas" }, }); 

यह आंतरिक रूप से hset 123 id 123 name {"first":"andreas"} में सीरियलाइज़ किया जाएगा और Upstash को भेजा जाएगा। ध्यान दें कि ऑब्जेक्ट्स स्वचालित रूप से सीरियलाइज़ हो जाते हैं और अब आपको इसे स्वयं करने की आवश्यकता नहीं है।

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

यहां सबसे महत्वपूर्ण परिवर्तन हैं:

  • स्पष्ट प्रमाणीकरण
  • विभिन्न प्लेटफॉर्म के लिए अनुकूलित (Node.js, Cloudflare Workers और fastly)
  • बेहतर टाइप सिस्टम
  • त्रुटियां फेंकी जाती हैं
  • पाइपलाइन सपोर्ट

स्पष्ट प्रमाणीकरण

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

हम समझते हैं कि अधिकांश उपयोग के मामलों में आप उन्हें अपने एनवायरनमेंट में स्टोर करेंगे और अपने Redis क्लाइंट को सेट करने के लिए केवल एक बार उनकी आवश्यकता होगी। @upstash/redis यहां एक शॉर्टकट प्रदान करता है: आपको केवल UPSTASH_REDIS_REST_URL और UPSTASH_REDIS_REST_TOKEN को एनवायरनमेंट वेरिएबल के रूप में सेट करना होगा और फिर उन्हें अपनी पसंद के डेप्लॉयमेंट प्लेटफॉर्म पर लोड करना होगा। यदि वे सही ढंग से कॉन्फ़िगर नहीं हैं, तो एक त्रुटि फेंकी जाती है।

Node.js

import { Redis } from "@upstash/redis"; const redis = Redis.fromEnv(); 

Cloudflare Workers

import { Redis } from "@upstash/redis/cloudflare"; const redis = Redis.fromEnv(); 

Typescript

नया संस्करण हर कमांड के लिए सख्त प्रकारों का समर्थन करता है और यह सुनिश्चित करता है कि आप गलतियों को बाद के बजाय जल्दी ढूंढ लें। प्रकार वैकल्पिक हैं और डिफ़ॉल्ट रूप से हम जहां संभव हो वहां प्रकारों का अनुमान लगाते हैं।

import { Redis } from "@upstash/redis"; const redis = new Redis({ /* auth */ }); type User = { id: string; email: string; }; const user = { id: "abc", email: "andreas@upstash.com", }; await redis.set("userKey", user); const user = await redis.get("userKey"); // -> user is typed as User 

Redis कई कमांड्स प्रदान करता है जिनमें वैकल्पिक तर्क और संभावित रूप से अलग-अलग संयोजन होते हैं। टाइपस्क्रिप्ट आपको कोड की एक भी लाइन निष्पादित करने से पहले किसी भी अमान्य संयोजन की जांच करने की अनुमति देता है।

redis.set("key", "value", { ex: 60, // 60 सेकंड में समाप्त nx: true, // केवल तभी बनाएं यदि कुंजी अभी तक मौजूद नहीं है }); 

त्रुटि प्रबंधन

पिछला संस्करण कमोबेश Upstash HTTP API से कच्ची प्रतिक्रिया लौटाता था। इसके लिए आपको यह जांचने की आवश्यकता थी कि क्या कोई त्रुटि मौजूद है और फिर उसे फेंक दें। जावास्क्रिप्ट में आप आमतौर पर उम्मीद करते हैं कि जब कुछ गलत होता है तो एक त्रुटि फेंकी जाती है, इसलिए हम बस वही कर रहे हैं।

अब से, कमांड्स केवल डेटा लौटाते हैं और यदि कुछ गलत हुआ तो स्वचालित रूप से फेंक देते हैं।

// `v0.2.1` const { data, error } = await set("key", "value"); if (error) { throw new Error(error); } 
// '^v1.0.0' const data = await redis.set("key", "value"); 

पाइपलाइन्स

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

:::note पाइपलाइन का निष्पादन एटॉमिक नहीं है। भले ही पाइपलाइन में प्रत्येक कमांड क्रम में निष्पादित की जाएगी, अन्य क्लाइंट्स द्वारा भेजी गई कमांड्स पाइपलाइन के साथ इंटरलीव हो सकती हैं। :::

आप अपने मौजूदा redis इंस्टेंस से एक नई पाइपलाइन बना सकते हैं।

import { Redis } from "@upstash/redis"; const redis = new Redis({ /* auth */ }); const p = redis.pipeline(); 

हमने पाइपलाइन API को कई कमांड्स की चेनिंग की अनुमति देने के लिए डिज़ाइन किया है। अपने पाइपलाइन में सभी कमांड्स जोड़ने के बाद, आप रिक्वेस्ट भेज सकते हैं और एक सरणी प्राप्त कर सकते हैं जहां प्रत्येक तत्व उसी क्रम में एक कमांड से मेल खाता है।

p.set("key", 2); // या सीधे चेन करें p.incr("key").decrby("key", 2); const res = await p.exec(); // res[0] => "OK" | p.set("key", 2) का परिणाम // res[1] => 3 | p.incr("key") का परिणाम // res[2] => 1 | p.decrby("key", 2) का परिणाम 

मैं कैसे शुरू करूं?

console.upstash.com पर जाएं और एक नया डेटाबेस बनाएं। फिर क्विक-स्टार्ट गाइड में निर्देशों का पालन करें।

यदि आपने पहले पुराने संस्करण का उपयोग किया है, तो आप GitHub पर Migrate to v1 सेक्शन को देखकर शुरू कर सकते हैं।

भविष्य का कार्य

Upstash Redis को हाल ही में redis v6.2 के साथ संगत होने के लिए अपडेट किया गया है, जिसमें नए कमांड्स शामिल हैं और अन्य को विस्तारित किया गया है। @upstash/redis जल्द ही इनका समर्थन करेगा।

एक अतिरिक्त प्लेटफॉर्म के रूप में, हम निकट भविष्य में deno का समर्थन करने की योजना बना रहे हैं।

समापन शब्द

यह एक बड़ा बदलाव है और आपको अपडेट करने के लिए कुछ काम करने की आवश्यकता होगी। कृपया हमें अपना अनुभव बताएं।

हम Upstash उत्पादों के साथ काम करते समय आपके अनुभव को बेहतर बनाने के लिए किसी भी फीडबैक का स्वागत करते हैं। बग्स के लिए या यदि आप योगदान करने में रुचि रखते हैं, फीचर रिक्वेस्ट करना चाहते हैं या मदद की ज़रूरत है तो GitHub, Discord या Twitter पर हमसे संपर्क करने में संकोच न करें।

  1. Upstash Chatbox पेश: आपकी वेबसाइट के लिए निर्बाध लाइव चैट Upstash Chatbox पेश: आपकी वेबसाइट के लिए निर्बाध लाइव चैट

    तत्काल, इंटरैक्टिव संचार संतोषजनक उपयोगकर्ता अनुभव के लिए महत्वपूर्ण है। यही कारण है कि कई कंपनियां अपनी वेबसाइटों पर लाइव चैटबॉक्स विजेट प्रदान करती हैं। यह क्या है यह एडमिन चैट पैनल के साथ एक चैटबॉक्स विजेट है, जो उपयोगकर्ताओं को डेवलपर्स/एडमिन से जोड़ता है। इस तरह, साथियों के बीच इंटरैक्टिव संचा

  1. सर्वरलेस क्लाउड और Upstash Redis के साथ Next.js ऐप बनाएं - क्विक स्टार्ट गाइड सर्वरलेस क्लाउड और Upstash Redis के साथ Next.js ऐप बनाएं - क्विक स्टार्ट गाइड

    सर्वरलेस क्लाउड Serverless Framework बनाने वाली टीम का एक बैकएंड प्लेटफॉर्म है। यह डेवलपर उत्पादकता को बढ़ावा देने के लिए एक ही प्लेटफॉर्म में क्लाउड रनटाइम, CLI और SDK प्रदान करता है। इस पोस्ट में, हम एक Next.js एप्लिकेशन बनाएंगे जो सर्वरलेस Redis (Upstash) से डेटा पढ़ता है और इसे सर्वरलेस क्लाउड प

  1. Upstash Redis के साथ Netlify Graph प्रदर्शन को ग्लोबल कैश से बढ़ाएं Upstash Redis के साथ Netlify Graph प्रदर्शन को ग्लोबल कैश से बढ़ाएं

    परिचय कल, Netlify ने एक नई सुविधा की घोषणा की जिसे Netlify Graph कहा जाता है। मेरे सहकर्मी ने हाल ही में तस्वीर में इसी तरह के लापता टुकड़े को उजागर किया और Netlify ने समाधान की दिशा में एक अच्छा कदम उठाया। मूल रूप से Netlify Graph डेवलपर्स को उनके वेब ऐप्स के लिए GraphQL API कॉल बनाने में मदद करता