রেডিস (Redis) হল একটি ওপেন-সোর্স ইন-মেমরি ডেটাবেস, ক্যাশিং এবং মেসেজ ব্রোকার সিস্টেম। এটি খুব দ্রুত এবং কার্যকরী, যা উচ্চ পারফরম্যান্স, স্কেলেবিলিটি এবং সহজ ব্যবহার নিশ্চিত করে। রেডিস মূলত ডেটা স্টোরেজ এবং ক্যাশিংয়ের জন্য ব্যবহৃত হয়, কিন্তু এটি আরও অনেক ক্ষেত্রে কাজে আসে, যেমন মেসেজ ব্রোকার, রেট লিমিটিং, এবং রিয়েল-টাইম অ্যানালিটিক্স। এখানে রেডিসের কিছু মূল ধারণা আলোচনা করা হলো:
১. ইন-মেমরি ডেটাবেস
রেডিস একটি ইন-মেমরি ডেটাবেস, অর্থাৎ এটি ডেটা সরাসরি RAM (র্যাম) এ সংরক্ষণ করে। এর ফলে ডেটার দ্রুত অ্যাক্সেস পাওয়া যায়, যা সাধারণত ডিস্ক-ভিত্তিক ডেটাবেসের তুলনায় অনেক দ্রুত। রেডিসের মেমরি ভিত্তিক প্রকৃতি এটি একটি উচ্চ-পারফরম্যান্স সিস্টেমে পরিণত করে।
২. কিপেয়ার ডেটা স্টোরেজ (Key-Value Store)
রেডিস একটি কিপেয়ার (key-value) ডেটা স্টোরেজ সিস্টেম, যেখানে ডেটা কিপেয়ার আকারে সংরক্ষিত হয়। এটি ডেটার জন্য একটি কিপেয়ার এবং মান (value) নির্ধারণ করে। রেডিস বিভিন্ন ধরনের ডেটা স্ট্রাকচার যেমন Strings, Lists, Sets, Sorted Sets, Hashes, Bitmaps ইত্যাদি সাপোর্ট করে।
- Strings: সাধারণ মান (value) যেমন টেক্সট বা সংখ্যা।
- Lists: লিনিয়ার লিস্ট যা এলিমেন্টগুলো যুক্ত করা যায় এবং মুছে ফেলা যায়।
- Sets: ইউনিক এলিমেন্টের অর্ডারহীন সংগ্রহ।
- Sorted Sets: সেটের মতো কিন্তু প্রতিটি এলিমেন্টের একটি স্কোর থাকে, যার ভিত্তিতে সেগুলো সাজানো থাকে।
- Hashes: ছোট ডেটা গঠন বা অবজেক্ট, যেটিতে কিপেয়ার-ভ্যালু জোড়া থাকে।
৩. ক্যাশিং (Caching)
রেডিস অনেক সময় ক্যাশিং সিস্টেম হিসেবে ব্যবহার করা হয়, যেখানে ফ্রিকোয়েন্টলি ব্যবহৃত ডেটা দ্রুত প্রাপ্তির জন্য মেমরিতে সংরক্ষণ করা হয়। এটি ওয়েব অ্যাপ্লিকেশন বা API এর পারফরম্যান্স উন্নত করতে সাহায্য করে, যেমন:
- এপিআই রেসপন্স ক্যাশিং: যাতে ডেটাবেস বা সার্ভার থেকে তথ্য প্রতিবার পুনরায় না আসতে হয়।
- ওয়েব পেজ ক্যাশিং: ওয়েব পেজের রেন্ডারিং প্রক্রিয়া দ্রুত করতে।
৪. মেসেজ ব্রোকার (Message Broker)
রেডিস পাব/সাব (Publish/Subscribe) মডেল সাপোর্ট করে, যা রিয়েল-টাইম মেসেজিং সিস্টেম তৈরি করতে সাহায্য করে। এটি ব্যবহারকারীদের মধ্যে মেসেজ প্রেরণ করতে সাহায্য করে। উদাহরণস্বরূপ, চ্যাট অ্যাপ্লিকেশন বা রিয়েল-টাইম ডেটা ফিডে এটি ব্যবহৃত হতে পারে।
৫. ডেটা পার্সিস্টেন্স (Persistence)
যদিও রেডিস ইন-মেমরি ডেটাবেস, তবুও এটি ডেটা পার্সিস্টেন্সের জন্য দুটি পদ্ধতি প্রদান করে:
- RDB (Redis Database Backup): নির্দিষ্ট সময় পর পর রেডিস ডেটার স্ন্যাপশট নেয় এবং তা ডিস্কে সংরক্ষণ করে।
- AOF (Append Only File): প্রতিটি রাইট অপারেশনকে ডিস্কে রেকর্ড করা হয়।
এটি রেডিসকে ডেটা হারানোর ঝুঁকি কমাতে সাহায্য করে, কারণ ডেটা পুনরুদ্ধার করা সম্ভব হয়।
৬. স্কেলেবিলিটি এবং ক্লাস্টারিং
রেডিস ক্লাস্টারিং সাপোর্ট করে, যা একাধিক সার্ভার বা নোডে ডেটা শার্ডিং (ভাগ) করতে সক্ষম। এটি রেডিসের স্কেলেবিলিটি উন্নত করে এবং বড় অ্যাপ্লিকেশন বা ডেটার সেট পরিচালনা করতে সহায়তা করে।
- Cluster: রেডিস ক্লাস্টার সিস্টেমে, ডেটা একাধিক নোডে ভাগ হয়ে থাকে। এতে ডেটাবেসের পারফরম্যান্স বৃদ্ধি পায় এবং একাধিক নোডের মাধ্যমে লোড ভারসাম্য বজায় থাকে।
৭. উচ্চ পারফরম্যান্স
রেডিসের পারফরম্যান্স অত্যন্ত দ্রুত, কারণ এটি ইন-মেমরি ডেটাবেস। এতে এক্সেস টাইম খুব কম এবং এটি প্রতি সেকেন্ডে মিলিয়ন লেভেল রিড/রাইট অপারেশন পরিচালনা করতে সক্ষম।
৮. ব্যবহারের ক্ষেত্রে
রেডিস ব্যবহৃত হয় বিভিন্ন ক্ষেত্রে:
- ক্যাশিং: ওয়েব অ্যাপ্লিকেশন বা API রেসপন্স ক্যাশিং
- সেশন ম্যানেজমেন্ট: ওয়েব অ্যাপ্লিকেশনের লগইন সেশন সংরক্ষণ
- রেট লিমিটিং: এক্সেস সীমা নির্ধারণ
- লিডারবোর্ড: গেমিং সিস্টেমে সেরা স্কোর ট্র্যাকিং
- রিয়েল-টাইম অ্যানালিটিক্স: রিয়েল-টাইম ডেটা প্রক্রিয়াকরণ
সারাংশ
রেডিস একটি শক্তিশালী এবং দ্রুত ইন-মেমরি ডেটাবেস, যা কিপেয়ার স্টোরেজ সিস্টেমের মাধ্যমে ডেটা সংরক্ষণ করে। এটি ডেটা ক্যাশিং, মেসেজ ব্রোকারিং, রেট লিমিটিং, সেশন ম্যানেজমেন্ট, রিয়েল-টাইম অ্যানালিটিক্স এবং আরও অনেক ক্ষেত্রে ব্যবহৃত হয়। রেডিস তার উচ্চ পারফরম্যান্স এবং স্কেলেবিলিটির কারণে আধুনিক ওয়েব অ্যাপ্লিকেশন এবং সিস্টেমের জন্য অপরিহার্য একটি টুল।
Key-Value স্টোর হল একটি ধরনের ডেটাবেস যা ডেটা সংরক্ষণের জন্য কী (key) এবং মান (value) এর জোড়া ব্যবহার করে। এই স্টোরে ডেটা সঞ্চিত হয় একে অপরের সাথে সম্পর্কযুক্ত কী এবং মানের মাধ্যমে, যেখানে প্রতিটি কী একটি ইউনিক আইডেন্টিফায়ার হিসেবে কাজ করে এবং তার সাথে যুক্ত মানটি ডেটা হিসেবে থাকে। এটি NoSQL ডেটাবেস এর একটি সাধারণ উদাহরণ, যা রিলেশনাল ডেটাবেসের তুলনায় সহজ এবং দ্রুত।
Key-Value স্টোরের মৌলিক বৈশিষ্ট্য
- কী (Key):
- কী হলো একটি ইউনিক আইডেন্টিফায়ার, যা নির্দিষ্ট মান (value) কে সনাক্ত করে।
- প্রতিটি কী ডেটাবেসের মধ্যে একমাত্র এবং অন্যান্য কী এর সাথে তার কোনও সম্পর্ক থাকে না।
- সাধারণত কী হলো একটি স্ট্রিং বা অন্য যেকোনো ডেটাটাইপ যা ইউনিকভাবে মানের সাথে সম্পর্ক স্থাপন করে।
- মান (Value):
- মান হলো সেই ডেটা যা কী এর সাথে সংযুক্ত থাকে। এটি কোনো প্রকারের ডেটা হতে পারে: স্ট্রিং, সংখ্যা, লিস্ট, সেট, JSON, ফাইল বা অন্য কোনো ডেটা স্ট্রাকচার।
- মানের আকার সীমাহীন হতে পারে এবং এটি একটি অবজেক্ট বা সিস্টেমের মধ্যে প্রাসঙ্গিক তথ্য হতে পারে।
Key-Value স্টোরের উদাহরণ
ধরা যাক, একটি ব্যবহারকারীর তথ্য স্টোর করার জন্য কী-ভ্যালু স্টোর ব্যবহার করা হচ্ছে। এখানে কী হবে ব্যবহারকারীর আইডি এবং মান হবে সেই ব্যবহারকারীর তথ্য (যেমন নাম, বয়স, ইমেইল ঠিকানা)।
কী: user_1234
মান:
{
"name": "John Doe",
"age": 30,
"email": "john.doe@example.com"
}
এখানে user_1234 হল কী এবং তার সাথে সংযুক্ত মান হলো ব্যবহারকারীর তথ্য।
Key-Value স্টোরের সুবিধা
- সহজতা:
- কী-ভ্যালু ডেটাবেস খুবই সহজ। এর মধ্যে ডেটা সংরক্ষণ এবং অনুসন্ধান সহজ, কারণ শুধু কী দিয়েই মান পাওয়া যায়।
- দ্রুত পারফরম্যান্স:
- কেবল কী অনুসন্ধান করলেই মান পাওয়া যায়, ফলে দ্রুত ডেটা রিট্রিভাল সম্ভব হয়। এটি সাধারণত ইন-মেমরি ডেটাবেস হিসাবে কাজ করে, যার ফলে উচ্চ পারফরম্যান্স পাওয়া যায়।
- স্কেলেবিলিটি:
- Key-Value স্টোরগুলি অত্যন্ত স্কেলযোগ্য হতে পারে, কারণ প্রতিটি কী এবং মান নির্দিষ্টভাবে সংরক্ষিত থাকে এবং ডিস্ট্রিবিউটেড আর্কিটেকচার ব্যবহার করে আরও সহজে স্কেল করা যায়।
- লচিলতা:
- এটি NoSQL ডেটাবেসের অংশ, যা কাঠামোগতভাবে রিলেশনাল ডেটাবেসের চেয়ে অনেক বেশি লচিল (flexible)। মানের ধরন কোনো নির্দিষ্ট কাঠামোর মধ্যে সীমাবদ্ধ নয়।
Key-Value স্টোরের ব্যবহার ক্ষেত্র
- ক্যাশিং (Caching):
- রেডিস (Redis) এবং মেমক্যাশ (Memcached) হল দুইটি জনপ্রিয় Key-Value স্টোর সিস্টেম যা ক্যাশিংয়ের জন্য ব্যবহৃত হয়। এদের মাধ্যমে দ্রুতগতিতে তথ্য প্রদান করা হয়।
- সেশন ম্যানেজমেন্ট (Session Management):
- Key-Value স্টোর সেশন ডেটা সংরক্ষণের জন্য ব্যবহৃত হয়, যেমন ব্যবহারকারীর লগইন তথ্য।
- কনফিগারেশন ডেটা সংরক্ষণ:
- অ্যাপ্লিকেশন কনফিগারেশন বা সেটিংস সংরক্ষণ করতে Key-Value ডেটাবেস ব্যবহার করা যেতে পারে।
- ডিস্ট্রিবিউটেড ডেটা স্টোরেজ:
- সিস্টেমে দ্রুত এবং স্কেলেবল ডেটা স্টোরেজের জন্য Key-Value স্টোর ব্যবহৃত হয়, যেখানে ডেটা কম্পিউটার নেটওয়ার্কে ভেঙে ভাগ করা হয়।
Key-Value স্টোরের সীমাবদ্ধতা
- কমপ্লেক্স কোয়েরি সাপোর্টের অভাব:
- Key-Value স্টোর সাধারণত নির্দিষ্ট মান অনুসন্ধানের জন্য উপযুক্ত, তবে জটিল কোয়েরি যেমন JOIN, GROUP BY, ORDER BY ইত্যাদি সাপোর্ট করে না।
- ডেটা রিলেশনালিটি:
- যেখানে রিলেশনাল ডেটাবেসে সম্পর্কিত টেবিল থাকতে পারে, সেখানে Key-Value স্টোরে সম্পর্কযুক্ত ডেটা একত্রে সংরক্ষণ করা কঠিন হতে পারে।
সারাংশ
Key-Value স্টোর একটি সহজ এবং দ্রুত ডেটা সংরক্ষণ ব্যবস্থা, যেখানে প্রতিটি কী একটি ইউনিক আইডেন্টিফায়ার হিসেবে কাজ করে এবং তার সাথে সংযুক্ত মানটি ডেটা হিসেবে সংরক্ষিত থাকে। এটি NoSQL ডেটাবেসের অংশ এবং উচ্চ পারফরম্যান্স, স্কেলেবিলিটি এবং লচিলতার জন্য জনপ্রিয়। তবে, জটিল কোয়েরি এবং ডেটার সম্পর্কযুক্ত কাঠামো তৈরির ক্ষেত্রে কিছু সীমাবদ্ধতা রয়েছে।
রেডিস (Redis) একটি ইন-মেমরি ডেটাবেস যা বিভিন্ন ধরনের ডেটা স্ট্রাকচার সাপোর্ট করে। রেডিসে String, List, Set, Hash, এবং Sorted Set ডেটা টাইপস রয়েছে, যা ডেটা সংরক্ষণ, ম্যানিপুলেশন, এবং প্রক্রিয়াকরণে বিভিন্ন সুবিধা প্রদান করে। নিচে প্রতিটি ডেটা টাইপের বিস্তারিত আলোচনা করা হলো।
১. String
String রেডিসের সবচেয়ে মৌলিক ডেটা টাইপ, যা কেবল একটি সিঙ্গেল ভ্যালু (যেমন টেক্সট বা সংখ্যা) সংরক্ষণ করতে ব্যবহৃত হয়।
- অথবা: একটি কিপেয়ার-ভ্যালু পেয়ার হিসেবে একটি একক স্ট্রিং ডেটা সংরক্ষণ।
- কমান্ড উদাহরণ:
SET: একটি নতুন কিপেয়ার তৈরি বা আপডেট করতে:
SET mykey "Hello Redis"GET: একটি কিপেয়ার থেকে মান রিটার্ন করতে:
GET mykey
- ব্যবহার:
- ক্যাশিং: সাধারণত ক্যাশে হিসেবে ব্যবহৃত হয়।
- নাম/টেক্সট সংরক্ষণ: ব্যবহারকারী নাম বা অন্যান্য ছোট ডেটা সংরক্ষণের জন্য।
২. List
List একটি সিরিয়াল আর্ডারড কালেকশন যা স্ট্রিংয়ের একটি অ্যারে। এতে ডুপ্লিকেট ভ্যালু থাকতে পারে এবং আপনি ডেটা প্রথমে (লেফট) বা শেষে (রাইট) অ্যাড করতে পারেন।
- কমান্ড উদাহরণ:
LPUSH: লিস্টের শুরুতে একটি এলিমেন্ট যোগ করা:
LPUSH mylist "First Element"RPUSH: লিস্টের শেষে একটি এলিমেন্ট যোগ করা:
RPUSH mylist "Second Element"LRANGE: একটি নির্দিষ্ট রেঞ্জে এলিমেন্ট দেখানো:
LRANGE mylist 0 -1 # প্রথম থেকে শেষ পর্যন্ত সব এলিমেন্ট দেখাবে
- ব্যবহার:
- কিউ বা স্ট্যাক: FIFO (First In First Out) বা LIFO (Last In First Out) স্টোরেজ হিসাবে ব্যবহার করা যায়।
- টাস্ক কিউ: অ্যাসিনক্রোনাস কাজ বা টাস্কের জন্য।
৩. Set
Set হল অর্ডারবিহীন ইউনিক (অদ্বিতীয়) এলিমেন্টগুলির একটি কালেকশন। এখানে কোনো ডুপ্লিকেট ভ্যালু থাকতে পারে না। এটি সাধারণত ইউনিক আইটেম ট্র্যাক করার জন্য ব্যবহৃত হয়।
- কমান্ড উদাহরণ:
SADD: একটি নতুন এলিমেন্ট সেটে যোগ করা:
SADD myset "apple"SMEMBERS: সেটের সব এলিমেন্ট দেখা:
SMEMBERS mysetSREM: একটি এলিমেন্ট সেট থেকে মুছে ফেলা:
SREM myset "apple"
- ব্যবহার:
- ইউনিক আইটেম ট্র্যাকিং: যেমন ব্যবহারকারী আইডি বা ট্যাগ।
- ম্যাচিং এলিমেন্ট: ডুপ্লিকেট বা একই আইটেম নির্ধারণ।
৪. Hash
Hash ডেটা টাইপটি একটি কিপেয়ার-ভ্যালু পেয়ার হিসেবে কাজ করে, তবে এটি একটি কমপ্লেক্স ডেটা স্ট্রাকচার যা একটি কিপোরের মধ্যে একাধিক ভ্যালু সংরক্ষণ করতে সক্ষম।
- কমান্ড উদাহরণ:
HSET: হ্যাশের মধ্যে একটি নতুন কিপে-ভ্যালু পেয়ার যোগ করা:
HSET user:1 name "John" age 30HGET: হ্যাশ থেকে একটি নির্দিষ্ট ফিল্ডের মান পড়া:
HGET user:1 nameHGETALL: হ্যাশের সব কিপেয়ার-ভ্যালু দেখানো:
HGETALL user:1
- ব্যবহার:
- অবজেক্ট স্টোরেজ: যেমন ব্যবহারকারীর প্রোফাইল ইনফরমেশন (নাম, বয়স, ইমেইল)।
- কনফিগ ফাইলস: অ্যাপ্লিকেশনের কনফিগারেশন সেটিংস সংরক্ষণ।
৫. Sorted Set
Sorted Set হল একটি সেট যেখানে প্রতিটি এলিমেন্টের সাথে একটি স্কোর যুক্ত থাকে এবং এই স্কোরের ভিত্তিতে এলিমেন্টগুলি অর্ডার করা থাকে। এতে ডুপ্লিকেট এলিমেন্ট থাকতে পারে না, তবে প্রতিটি এলিমেন্টের স্কোর ইউনিক হতে হবে।
- কমান্ড উদাহরণ:
ZADD: একটি নতুন এলিমেন্ট যোগ করা এবং স্কোর নির্ধারণ:
ZADD leaderboard 100 "Player1"ZRANGE: একটি নির্দিষ্ট স্কোর রেঞ্জের এলিমেন্ট বের করা:
ZRANGE leaderboard 0 -1 WITHSCORESZREM: একটি এলিমেন্ট সরানো:
ZREM leaderboard "Player1"
- ব্যবহার:
- লিডারবোর্ড: গেমের র্যাংকিং সিস্টেম তৈরি করতে।
- ট্রেন্ডিং টপিকস: সোশ্যাল মিডিয়া বা নিউজ অ্যাপ্লিকেশনের ট্রেন্ডিং টপিকস।
সারাংশ
রেডিসের পাঁচটি প্রধান ডেটা টাইপ হলো:
- String: একক মান সংরক্ষণ।
- List: অর্ডারড এবং ডুপ্লিকেট সহ তালিকা।
- Set: অর্ডারবিহীন, ইউনিক আইটেমের কালেকশন।
- Hash: কিপেয়ার-ভ্যালু পেয়ার, কমপ্লেক্স ডেটা সংরক্ষণ।
- Sorted Set: অর্ডারড সেট যেখানে প্রতিটি এলিমেন্টের স্কোর থাকে।
প্রতিটি ডেটা টাইপের নিজস্ব সুবিধা এবং ব্যবহার ক্ষেত্র রয়েছে, যা বিভিন্ন অ্যাপ্লিকেশন এবং পরিস্থিতিতে অত্যন্ত কার্যকর।
রেডিস (Redis) হল একটি ইন-মেমরি ডেটাবেস সিস্টেম যা ডেটা স্টোরেজ এবং ক্যাশিংয়ের জন্য ব্যবহৃত হয়। রেডিসের কমান্ডগুলি ডেটা অপারেশন (যেমন সেট, গেট, মুছে ফেলা) এবং কনফিগারেশন পরিচালনা করতে ব্যবহৃত হয়। এখানে রেডিস কমান্ডগুলির মৌলিক ব্যবহার আলোচনা করা হয়েছে।
১. SET এবং GET কমান্ড
SET: একটি কিপেয়ার ডেটাবেসে সেট করতে
SETকমান্ড ব্যবহৃত হয়।উদাহরণ:
SET mykey "Hello Redis"GET: একটি কির মান পেতে
GETকমান্ড ব্যবহৃত হয়।উদাহরণ:
GET mykeyএই কমান্ডের আউটপুট হবে:
"Hello Redis"
২. DEL কমান্ড (ডেটা মুছে ফেলা)
DEL: একটি কিপেয়ার মুছে ফেলতে
DELকমান্ড ব্যবহৃত হয়।উদাহরণ:
DEL mykeyএই কমান্ডটি
mykeyকিপেয়ারটি মুছে ফেলবে।
৩. EXISTS কমান্ড (ডেটা আছে কিনা পরীক্ষা করা)
EXISTS: নির্দিষ্ট কিপেয়ার ডেটাবেসে রয়েছে কিনা তা পরীক্ষা করতে
EXISTSকমান্ড ব্যবহার করা হয়।উদাহরণ:
EXISTS mykeyযদি কিপেয়ার
mykeyথাকে, তবে এটি1রিটার্ন করবে, না থাকলে0।
৪. EXPIRE কমান্ড (TTL সেট করা)
EXPIRE: একটি কিপেয়ার এর মেয়াদ (TTL) নির্ধারণ করতে
EXPIREকমান্ড ব্যবহৃত হয়।উদাহরণ:
EXPIRE mykey 3600এটি
mykeyকিপেয়ারের মেয়াদ 1 ঘণ্টা (3600 সেকেন্ড) সেট করবে।
৫. KEYS কমান্ড (সব কিপেয়ার দেখতে)
KEYS: ডেটাবেসে থাকা সব কিপেয়ার দেখতে
KEYSকমান্ড ব্যবহার করা হয়।উদাহরণ:
KEYS *এটি সব কিপেয়ার রিটার্ন করবে, যেমন:
1) "mykey" 2) "anotherkey"
৬. LPUSH এবং LRANGE (লিস্টে ডেটা যোগ এবং দেখানো)
LPUSH: লিস্টে একটি নতুন এলিমেন্ট যোগ করতে
LPUSHকমান্ড ব্যবহৃত হয়।উদাহরণ:
LPUSH mylist "first" LPUSH mylist "second"LRANGE: লিস্ট থেকে এলিমেন্টগুলো দেখার জন্য
LRANGEকমান্ড ব্যবহার করা হয়।উদাহরণ:
LRANGE mylist 0 -1এটি লিস্টের সব এলিমেন্ট দেখাবে:
1) "second" 2) "first"
৭. SADD এবং SMEMBERS (সেটে ডেটা যোগ এবং দেখানো)
SADD: সেটে একটি নতুন এলিমেন্ট যোগ করতে
SADDকমান্ড ব্যবহৃত হয়।উদাহরণ:
SADD myset "apple" SADD myset "banana"SMEMBERS: সেটের সব এলিমেন্ট দেখতে
SMEMBERSকমান্ড ব্যবহার করা হয়।উদাহরণ:
SMEMBERS mysetএটি রিটার্ন করবে:
1) "apple" 2) "banana"
৮. HSET এবং HGET (হ্যাশে ডেটা সেট এবং পড়া)
HSET: হ্যাশের মধ্যে একটি কিপেয়ার-ভ্যালু সেট করতে
HSETকমান্ড ব্যবহার করা হয়।উদাহরণ:
HSET myhash field1 "value1"HGET: হ্যাশের মধ্যে একটি নির্দিষ্ট ফিল্ডের মান পেতে
HGETকমান্ড ব্যবহার করা হয়।উদাহরণ:
HGET myhash field1এটি রিটার্ন করবে:
"value1"
৯. PUBLISH এবং SUBSCRIBE (পাব/সাব মডেল)
PUBLISH: পাব/সাব মডেল ব্যবহার করে একটি চ্যানেলে মেসেজ পাঠাতে
PUBLISHকমান্ড ব্যবহার করা হয়।উদাহরণ:
PUBLISH mychannel "Hello Subscribers!"SUBSCRIBE: একটি চ্যানেল সাবস্ক্রাইব করতে
SUBSCRIBEকমান্ড ব্যবহার করা হয়।উদাহরণ:
SUBSCRIBE mychannelসাবস্ক্রাইব করার পর, চ্যানেলে পাঠানো মেসেজটি সরাসরি রিটার্ন হবে।
১০. FLUSHDB এবং FLUSHALL (ডেটাবেস ফ্লাশ করা)
FLUSHDB: বর্তমান ডেটাবেস থেকে সব কিপেয়ার মুছে ফেলতে
FLUSHDBকমান্ড ব্যবহার করা হয়।উদাহরণ:
FLUSHDBFLUSHALL: সব ডেটাবেস থেকে সব কিপেয়ার মুছে ফেলতে
FLUSHALLকমান্ড ব্যবহার করা হয়।উদাহরণ:
FLUSHALL
সারাংশ
- রেডিসের মৌলিক কমান্ডগুলির মধ্যে SET, GET, DEL, EXISTS, LPUSH, SADD, HSET, PUBLISH, FLUSHDB, ইত্যাদি অন্তর্ভুক্ত রয়েছে, যা ডেটা সংরক্ষণ, আপডেট, মুছে ফেলা, এবং ডেটাবেস পরিচালনা করতে ব্যবহৃত হয়।
- রেডিস কমান্ডগুলির মাধ্যমে আপনি ডেটা দ্রুত এবং কার্যকরভাবে পরিচালনা করতে পারেন, যা রেডিসকে একটি অত্যন্ত দক্ষ ইন-মেমরি ডেটাবেস করে তোলে।
রেডিস (Redis) তে TTL (Time-to-Live) এবং Expiration দুটি গুরুত্বপূর্ণ ফিচার, যা একটি কিপেয়ার (key) নির্দিষ্ট সময় পর মুছে ফেলার জন্য ব্যবহৃত হয়। এই ফিচারগুলো রেডিসকে ডেটা ম্যানেজমেন্টের ক্ষেত্রে আরও ফ্লেক্সিবল এবং শক্তিশালী করে তোলে, বিশেষত ক্যাশিং, সেশন ম্যানেজমেন্ট এবং অন্যান্য অস্থায়ী ডেটা ব্যবস্থাপনায়।
TTL (Time-to-Live) কি?
TTL হল একটি কিপেয়ারের জন্য নির্ধারিত সময়কাল, এর মাধ্যমে আপনি একটি কিপেয়ার নির্দিষ্ট সময় পরে স্বয়ংক্রিয়ভাবে মুছে ফেলার নির্দেশ দিতে পারেন। রেডিসের ক্ষেত্রে, TTL সেট করা হলে, যখন সেই কিপেয়ারের TTL শেষ হবে, তখন রেডিস সেটি মুছে ফেলবে।
TTL সেট করার পদ্ধতি
রেডিসে কিপেয়ারের TTL নির্ধারণ করতে EXPIRE বা PEXPIRE কমান্ড ব্যবহার করা হয়।
EXPIRE কমান্ড:
EXPIREকমান্ড ব্যবহার করে আপনি কোনো কিপেয়ারের TTL সেকেন্ডে সেট করতে পারেন।উদাহরণ:
EXPIRE mykey 3600 # mykey কিপেয়ারটি 3600 সেকেন্ড (1 ঘণ্টা) পর মুছে যাবেPEXPIRE কমান্ড:
PEXPIREকমান্ড ব্যবহার করে আপনি TTL মাইলিসেকেন্ডে (মিলিসেকেন্ড ভিত্তিক) সেট করতে পারেন।উদাহরণ:
PEXPIRE mykey 60000 # mykey কিপেয়ারটি 60000 মিলিসেকেন্ড (1 মিনিট) পর মুছে যাবে
TTL চেক করা
একটি কিপেয়ারের TTL চেক করতে TTL অথবা PTTL কমান্ড ব্যবহার করা হয়।
TTL কমান্ড:
TTLকমান্ড সেকেন্ডে TTL প্রদান করবে।উদাহরণ:
TTL mykey # mykey কিপেয়ারের TTL সেকেন্ডে দেখাবেPTTL কমান্ড:
PTTLকমান্ড মাইলিসেকেন্ডে TTL প্রদান করবে।উদাহরণ:
PTTL mykey # mykey কিপেয়ারের TTL মাইলিসেকেন্ডে দেখাবেযদি কিপেয়ারের TTL না থাকে (অর্থাৎ কিপেয়ারটি কখনোই এক্সপায়ার হবে না), তাহলে
TTLকমান্ড-1রিটার্ন করবে, এবং যদি কিপেয়ারটি ইতিমধ্যে মুছে ফেলা হয়ে থাকে, তবে-2রিটার্ন করবে।
Expiration (এক্সপায়ারেশন)
Expiration হল একটি কিপেয়ার এর মেয়াদ শেষ হওয়া এবং রেডিসের পক্ষ থেকে সেটি স্বয়ংক্রিয়ভাবে মুছে ফেলা। যখন কোনো কিপেয়ার TTL সেট করা হয়, তখন সেটি নির্দিষ্ট সময় পর এক্সপায়ার হয় এবং রেডিস সেটি মুছে ফেলে।
Expiration Set করার পদ্ধতি
একটি কিপেয়ার জন্য Expiration সেট করতে EXPIRE অথবা PEXPIRE কমান্ড ব্যবহার করা হয়। একইভাবে, আপনি নির্দিষ্ট টাইমে (মিনিট, ঘণ্টা, দিন) কিপেয়ারটি মুছে ফেলার সময়সীমা নির্ধারণ করতে পারেন।
EXPIRE কমান্ড: কিপেয়ারটির মেয়াদ নির্ধারণ করার জন্য সেকেন্ডে সময় নির্ধারণ করতে:
EXPIRE mykey 3600 # mykey কিপেয়ারটি 1 ঘণ্টার মধ্যে মুছে যাবেPEXPIRE কমান্ড: যদি আপনি মিলিসেকেন্ড ভিত্তিক সময় চান, তাহলে
PEXPIREকমান্ড ব্যবহার করতে হবে:PEXPIRE mykey 60000 # mykey কিপেয়ারটি 60 সেকেন্ড (60000 মিলিসেকেন্ড) পর মুছে যাবে
কিপেয়ার ম্যানিপুলেশন সম্পর্কিত অন্যান্য কমান্ড
SETEX কমান্ড: যদি আপনি একত্রে একটি কিপেয়ার সেট করতে চান এবং তার সাথে TTLও নির্ধারণ করতে চান, তবে
SETEXকমান্ড ব্যবহার করতে পারেন। এটিSETএবংEXPIREএর সমন্বয়:উদাহরণ:
SETEX mykey 3600 "Hello Redis" # mykey কিপেয়ারটি 1 ঘণ্টার জন্য "Hello Redis" মান সহ সেট হবেPSETEX কমান্ড:
SETEXএর মতো, তবে এটি মাইলিসেকেন্ড ভিত্তিক সময় নির্ধারণ করতে ব্যবহৃত হয়:উদাহরণ:
PSETEX mykey 60000 "Hello Redis" # mykey কিপেয়ারটি 60000 মিলিসেকেন্ড (1 মিনিট) জন্য সেট হবেDEL কমান্ড: আপনি
DELকমান্ডের মাধ্যমে একটি কিপেয়ার মুছে ফেলতে পারেন, যেটি TTL বা Expiration ছাড়াই কিপেয়ারটি মুছে ফেলে:উদাহরণ:
DEL mykey # mykey কিপেয়ারটি মুছে ফেলবে
TTL এর সুবিধা
- ক্যাশিং: রেডিস ক্যাশ হিসেবে ব্যবহৃত হলে TTL ব্যবহার করা হয় যাতে ক্যাশের তথ্য সময়ের সাথে পুরানো না হয়ে যায় এবং কেবল প্রয়োজনীয় ডেটা থাকুক।
- সেশন ম্যানেজমেন্ট: ব্যবহারকারীর সেশনগুলি TTL-এর মাধ্যমে ম্যানেজ করা হয় যাতে সেশন শেষ হয়ে গেলে স্বয়ংক্রিয়ভাবে মুছে যায়।
- অস্থায়ী ডেটা: কিছু ডেটা যেমন টেম্পোরারি বা অস্থায়ী ডেটা TTL ব্যবহার করে ডেটাবেসে সংরক্ষণ করা হয়, যাতে সময় শেষ হলে তা মুছে যায়।
সারাংশ
রেডিসে TTL (Time-to-Live) এবং Expiration ব্যবহার করে আপনি কিপেয়ারের মেয়াদ নির্ধারণ করতে পারেন, যা স্বয়ংক্রিয়ভাবে মুছে যায় নির্ধারিত সময় পর। EXPIRE, PEXPIRE, TTL, PTTL কমান্ডগুলোর মাধ্যমে আপনি কিপেয়ারগুলির TTL এবং এক্সপায়ারেশন নিয়ন্ত্রণ করতে পারবেন। এগুলি ক্যাশিং, সেশন ম্যানেজমেন্ট এবং অস্থায়ী ডেটা ব্যবস্থাপনার জন্য খুবই কার্যকর।
Read more