কম্পিউটার টিউটোরিয়াল

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 পिछ)、**আমরা আপনাকে স্পষ্টভাবে আপনার ক্লায়েন্টকে অথেন্টিকেট করতে চাই।**

আমরা বুঝি অধিকাংশ ব্যবহারের ক্ষেত্রে আপনি এনভায়রনমেন্টে সেগুলো সংরক্ষণ করবেন এবং আপনার 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 অনেক কমান্ড অফার করে যেগুলোর অপশনাল আর্গুমেন্ট এবং সম্ভাব্য ভিন্ন কম্বিনেশন থাকে। Typescript আপনাকে একক লাইন কোড এক্সিকিউট করার আগে যেকোনো অবৈধ কম্বিনেশন চেক করতে দেয়।

redis.set("key", "value", { ex: 60, // ৬০ সেকেন্ডে এক্সপায়ার nx: true, // শুধু তৈরি করুন যদি কী ইতিমধ্যে না থাকে });

এরর হ্যান্ডলিং

পূর্ববর্তী ভার্সন أقل або বেশি Upstash HTTP API থেকে রescent রেসপন্স রিটার্ন করত। সেটি আপনাকে চেক করতে বাধ্য করত যদি কোনো এরর থাকে এবং তারপর তা থ্রো করতে। জাভাস্ক্রিপ্টে আপনি সাধারণত আশা করুন যখন কিছু ভুল যায় তখন একটি এরর থ্রো হবে, তাই আমরা সেটিই করছি।

এখন থেকে, কমান্ডগুলো শুধু ডেটা রিটার্ন করে এবং যদি কিছু ভুল যায় তবে অটোম্যাটিক্যালি থ্রো করে।

// `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-এ যান এবং একটি নতুন ডাটাবেস তৈরি করুন। তারপর quick-start guide-এ ইনস্ট্রাকশন ফলো করুন।

যদি আপনি পূর্বে একটি পুরনো ভার্সন ব্যবহার کرده থাকেন, আপনি GitHub-এ Migrate to v1 সেকশন চেক আউট করতে পারেন শুরু করার জন্য।

ভবিষ্যতের কাজ

Upstash Redis সম্প্রতিতে redis v6.2-এর সাথে কম্প্যাটিবল হওয়ার জন্য আপডেট পেয়েছে, যাতে নতুন কমান্ড এবং অন্যদের এক্সটেনশন রয়েছে। @upstash/redis শীঘ্রই এগুলিকে সমর্থন করবে।

একটি অতিরিক্ত প্ল্যাটফর্ম হিসেবে, আমরা নিকট ভবিষ্যতে deno সমর্থন করার পরিকল্পনা করছি।

শেষ কথা

এটি একটি বড় পরিবর্তন এবং আপডেট করার জন্য আপনার কিছু কাজ লাগবে। দয়া করে আপনার অভিজ্ঞতা আমাদের জানান।

আমরা Upstash প্রোডাক্টসের সাথে কাজ করার সময় আপনার অভিজ্ঞতা উন্নত করার জন্য যেকোনো ফিডব্যাক স্বাগত করি। বাগের জন্য বা আপনি যদি কান্ট্রিবিউট করতে চান, ফিচার রিকোয়েস্ট করতে চান বা সাহায্য দরকার হলে GitHub, Discord বা Twitter-এ যোগাযোগ করতে সন্দেহ করবেন না।

  1. Go-Redis, Upstash এবং OpenTelemetry দিয়ে ডিস্ট্রিবিউটেড ট্রেসিং দক্ষতার সাথে করুন

  2. Upstash Chatbox পরিচিতি: আপনার ওয়েবসাইটের জন্য স্মুথ লাইভ চ্যাট

  3. Serverless Cloud এবং Upstash Redis দিয়ে Next.js অ্যাপ তৈরি করুন – কুইক স্টার্ট গাইড

  4. Upstash রেডিসের গ্লোবাল ক্যাশ দিয়ে Netlify Graph পারফরম্যান্স বাড়ান