রেডিস (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