Upstash নেটিভ Redis API-র পাশাপাশি REST API সাপোর্ট করে। REST API ডেভেলপারদের সার্ভারলেস এবং এজ ফাংশন থেকে কানেকশন সমস্যা ছাড়াই Redis এক্সেস করতে দেয়। কিন্তু একই ফাংশনে একাধিক Redis কমান্ড এক্সিকিউট করলে ডেটাবেসে একাধিকবার কল করতে হয়। আমাদের ডিস্কর্ড চ্যানেলের একজন কমিউনিটি মেম্বার (@MasterGates) Pipeline API-এর দুর্দান্ত সাজেশন দিয়েছিলেন।

Pipeline API
Pipeline API হলো Redis PIPELINE কমান্ডের REST API এডাপ্টেশন। আপনি একই HTTP রিকোয়েস্টে একাধিক কমান্ড পাঠাতে পারেন, রেসপন্সগুলো একই রিকোয়েস্টে ফেরত পাবেন। এটি রাউন্ড ট্রিপ টাইম (RTT) কমিয়ে এবং সকেট I/O হ্রাস করে আপনার অ্যাপ্লিকেশনের পারফরম্যান্স বাড়ায়।
রিকোয়েস্ট সিনট্যাক্স:
curl -X POST https://us1-merry-cat-32748.upstash.io/pipeline \
-H "Authorization: Bearer 2553feg6a2d9842h2a0gcdb5f8efe9934" \
-d '[ ["SET", "key1", "valuex"], ["SETEX", "key2", 13, "valuez"], ["INCR", "key1"], ["ZADD", "myset", 11, "item1", 22, "item2"] ]'
রেসপন্স সিনট্যাক্স:
[
{ "result": "OK" },
{ "result": "OK" },
{ "error": "ERR value is not an integer or out of range" },
{ "result": 2 }
]
অর্ডারিং গ্যারান্টি এবং অ্যাটোমিসিটি
Upstash গ্যারান্টি দেয় যে পাইপলাইনের কমান্ডগুলো একই ক্রমে এক্সিকিউট হবে। কিন্তু অ্যাটোমিসিটি গ্যারান্টি দেয় না। অন্যান্য ক্লায়েন্টের কমান্ড পাইপলাইনের মাঝপথে ইন্টারলিভ হতে পারে। কিছু কমান্ড ফেল করলে বাকিগুলো সফল হতে পারে।
Pipeline API-এর আরেকটি সীমাবদ্ধতা: আপনার কমান্ডগুলো স্বতন্ত্র হতে হবে, অর্থাৎ এক কমান্ডের রেসপন্স পাইপলাইনের অন্য কমান্ডের জন্য দরকার নয়।
আমাদের ডকুমেন্টেশন দেখুন Upstash REST API সম্পর্কে আরো জানতে। আমরা ইউজারদের ফিডব্যাক অনুযায়ী API ডেভেলপ করছি। টুইটার বা ডিস্কর্ড-এ আপনার মতামত শেয়ার করুন।