MULTI, EXEC, DISCARD এবং WATCH কমান্ডের ব্যবহার

Transactions এবং Pipelining - রেডিস (Redis) - Database Tutorials

357

রেডিসের MULTI, EXEC, DISCARD, এবং WATCH কমান্ডগুলি ব্যবহারকারীদের ট্রানজেকশনাল অপারেশন সম্পাদন করতে সহায়তা করে, যেখানে একাধিক কমান্ড একযোগে চালানো হয়, এবং একটি কমান্ডের ফলাফল পরবর্তী কমান্ডের উপর প্রভাব ফেলতে পারে। রেডিসের এই কমান্ডগুলো মূলত Atomicity (অ্যাটমিকতা), Consistency (সঙ্গতি), Isolation (অইসলেশন) এবং Durability (স্থায়িত্ব) এর মূল ধারণাগুলি অনুসরণ করে।

এগুলো ট্রানজেকশনাল কমান্ড হিসেবে কাজ করে, যা একসাথে একাধিক রেডিস কমান্ড একযোগে চালানোর সুবিধা দেয় এবং সেগুলোর মধ্যে কোনও একটিও ব্যর্থ হলে, সবগুলো কমান্ডই বাতিল হয়ে যায়।


১. MULTI

MULTI কমান্ডের মাধ্যমে রেডিস একটি ট্রানজেকশন শুরু হয়, যার মধ্যে আপনি একাধিক কমান্ড একযোগে রান করাতে পারবেন। MULTI কমান্ড একবার রান করার পর, পরবর্তী কমান্ডগুলো একটি ট্রানজেকশনে রান করা হবে। এর মানে হলো, আপনি যেসব কমান্ড রান করবেন, সেগুলো একযোগে সম্পাদিত হবে (যতক্ষণ না EXEC কমান্ড দেয়ার মাধ্যমে তা কমিট করা হয়)।

ব্যবহার:

MULTI
SET key1 "value1"
SET key2 "value2"
GET key1
EXEC

এখানে:

  • MULTI ট্রানজেকশন শুরু করে।
  • পরবর্তী SET এবং GET কমান্ডগুলো একটি ট্রানজেকশনের অংশ হিসেবে চলবে।
  • EXEC কমান্ডের মাধ্যমে ট্রানজেকশনটি সম্পন্ন হবে এবং কমান্ডগুলোর ফলাফল পাওয়া যাবে।

২. EXEC

EXEC কমান্ডের মাধ্যমে পূর্ববর্তী MULTI কমান্ডের অধীনে থাকা সকল কমান্ড একযোগে বাস্তবায়িত হয়। EXEC এর মাধ্যমে ট্রানজেকশনটি কমিট করা হয় এবং এতে করা সমস্ত পরিবর্তন রেডিসে কার্যকর হয়ে যায়।

ব্যবহার:

MULTI
SET key1 "value1"
SET key2 "value2"
EXEC

এখানে:

  • MULTI ট্রানজেকশন শুরু করে।
  • SET কমান্ড দুটি একযোগে সম্পাদিত হবে।
  • EXEC কমান্ডের মাধ্যমে, ট্রানজেকশনটি সম্পন্ন হবে এবং সব কমান্ড একযোগে কার্যকর হবে।

৩. DISCARD

DISCARD কমান্ডের মাধ্যমে আপনি MULTI দিয়ে শুরু করা ট্রানজেকশনটি বাতিল করতে পারেন। এটি সমস্ত পূর্ববর্তী কমান্ড বাতিল করে দেয় এবং ট্রানজেকশনটি সম্পন্ন না হওয়ার আগে যে কোনও পরিবর্তন করা হবে না।

ব্যবহার:

MULTI
SET key1 "value1"
SET key2 "value2"
DISCARD

এখানে:

  • MULTI দিয়ে ট্রানজেকশন শুরু হয়।
  • SET কমান্ডগুলো একত্রে রান করার জন্য স্থির করা হয়।
  • কিন্তু, DISCARD কমান্ডটি দিয়ে ট্রানজেকশন বাতিল করা হয়, ফলে কোনও পরিবর্তন করা হবে না এবং ট্রানজেকশনটি সম্পন্ন হবে না।

৪. WATCH

WATCH কমান্ডের মাধ্যমে আপনি একটি বা একাধিক কিপেয়ার "নজরদারি" করতে পারেন। এর মানে হলো, আপনি যে কিপেয়ারগুলোর উপর ট্রানজেকশন চালাবেন, যদি তারা অন্য কোনও ক্লায়েন্ট দ্বারা পরিবর্তিত হয়, তবে সেই ট্রানজেকশন ব্যর্থ হবে। এটি রেডিসের Optimistic Locking ব্যবস্থা হিসেবে কাজ করে, যা নিশ্চিত করে যে ট্রানজেকশন চালানোর আগে কিপেয়ারটি পরিবর্তিত হয়নি।

ব্যবহার:

WATCH key1
MULTI
SET key1 "new value"
EXEC

এখানে:

  • WATCH key1 দিয়ে আমরা কিপেয়ার key1 এর উপর নজরদারি শুরু করি।
  • যদি এই কিপেয়ারটি অন্য কোনো ক্লায়েন্ট দ্বারা পরিবর্তিত হয়, তবে পরবর্তী ট্রানজেকশন ব্যর্থ হবে।
  • MULTI এবং EXEC দিয়ে ট্রানজেকশন পরিচালিত হয়, তবে যদি key1 পরিবর্তিত হয়, তাহলে EXEC কমান্ড ব্যর্থ হবে।

WATCH-এর সাথে একটি উদাহরণ:

WATCH key1
MULTI
INCR key1
EXEC

এখানে:

  • প্রথমে WATCH key1 দিয়ে key1 এর উপর নজরদারি শুরু করা হয়।
  • INCR key1 কমান্ডটি চালানোর জন্য ট্রানজেকশন শুরু করা হয়।
  • যদি অন্য কোনও ক্লায়েন্ট key1 পরিবর্তন না করে, তাহলে INCR key1 সফলভাবে রান হবে।
  • তবে, যদি অন্য ক্লায়েন্ট key1 পরিবর্তন করে, তাহলে EXEC কমান্ড ব্যর্থ হবে এবং INCR কমান্ডটি সম্পাদিত হবে না।

ট্রানজেকশনের Flow:

  1. MULTI: ট্রানজেকশন শুরু।
  2. কমান্ডগুলো: একাধিক কমান্ড রান করা হয়, তবে এগুলো বাস্তবায়িত হয় না যতক্ষণ না EXEC দেয়া হয়।
  3. WATCH (ঐচ্ছিক): যদি নির্দিষ্ট কিপেয়ারগুলোর উপর নজরদারি করতে চান, তবে WATCH ব্যবহার করতে পারেন।
  4. DISCARD (ঐচ্ছিক): যদি ট্রানজেকশন বাতিল করতে চান, তবে DISCARD ব্যবহার করতে পারেন।
  5. EXEC: ট্রানজেকশন কমিট করা হয় এবং সকল কমান্ড একযোগে বাস্তবায়িত হয়।

সারাংশ

  • MULTI: ট্রানজেকশন শুরু করে, যেখানে একাধিক কমান্ড একসাথে রান হবে।
  • EXEC: ট্রানজেকশন কমিট করে এবং পূর্ববর্তী সমস্ত কমান্ড একসাথে কার্যকর হয়।
  • DISCARD: ট্রানজেকশন বাতিল করে, কোন কমান্ড কার্যকর হয় না।
  • WATCH: এক বা একাধিক কিপেয়ারকে নজরদারি করে, যদি কিপেয়ার পরিবর্তিত হয়, তবে ট্রানজেকশন ব্যর্থ হয়ে যাবে।

এই কমান্ডগুলো একসাথে ব্যবহার করে, আপনি রেডিসে অ্যাটমিক ট্রানজেকশন সম্পাদন করতে পারবেন যা নিশ্চিত করে যে আপনার ডেটার সঙ্গতি ও নিরাপত্তা রক্ষা হবে।

Content added By
Promotion

Are you sure to start over?

Loading...