ক্যাশ এক্সপিরেশন (Cache Expiration) এবং Eviction Policies রেডিসের গুরুত্বপূর্ণ বৈশিষ্ট্য যা ক্যাশ ব্যবস্থাপনার ক্ষেত্রে গুরুত্বপূর্ণ ভূমিকা পালন করে। ক্যাশে ডেটা স্টোর করা হয় এবং সীমিত রিসোর্সে অনেক সময় রাখতে হয়, তাই কখন ডেটা মুছে ফেলা হবে বা কখন এক্সপায়ার হবে তা নিয়ন্ত্রণ করা দরকার। রেডিসে Cache Expiration এবং Eviction Policies এর মাধ্যমে আপনি ক্যাশের কার্যকারিতা এবং পারফরম্যান্স ম্যানেজ করতে পারেন।
Cache Expiration:
Cache Expiration একটি নির্দিষ্ট সময় পর ক্যাশের মধ্যে থাকা ডেটার মেয়াদ শেষ হয়ে যাওয়ার প্রক্রিয়া। যখন কোনো ডেটার মেয়াদ শেষ হয়ে যায়, তখন সেই ডেটা রেডিসে অটোমেটিক্যালি মুছে যায়।
রেডিসে একটি কিপেয়ার তৈরি করার সময়, আপনি তার জন্য এক্সপায়ার টাইম সেট করতে পারেন।
উদাহরণ:
কোনো কিপেয়ারের জন্য 60 সেকেন্ডের মেয়াদ সেট করতে:
SET mykey "value" EX 60
এটি mykey কিপেয়ারের জন্য 60 সেকেন্ড পর এক্সপায়ার করে ফেলবে।
আরও একটি উদাহরণ যেখানে আপনি TTL (Time To Live) চেক করতে পারেন:
TTL mykey
এটি কিপেয়ারের বাকি মেয়াদ সেকেন্ডে দেখাবে।
Eviction Policies:
Eviction Policies হল সেই নীতি যা রেডিসকে নির্দেশ দেয়, যখন মেমরি পূর্ণ হয়ে যায় তখন কোন ডেটা মুছে ফেলা হবে। মেমরির সীমা (maxmemory) পেরিয়ে গেলে, রেডিস ডেটা মুছে ফেলার জন্য একটি নীতি অনুসরণ করে।
রেডিসে ৬টি প্রধান eviction policy রয়েছে:
LRU (Least Recently Used):
- LRU পলিসি ডেটা মুছে ফেলার জন্য সর্বশেষ ব্যবহৃত না হওয়া ডেটা মুছে ফেলে।
- এটি কার্যকরী যখন আপনি এক্সেস করা না হওয়া ডেটা মুছে ফেলে সার্ভারের মেমরি মুক্ত করতে চান।
- যখন মেমরি সীমা পৌঁছে যাবে, রেডিস LRU নীতির অধীনে সবচেয়ে কম ব্যবহৃত ডেটা মুছে ফেলবে।
উদাহরণ:
মেমরি সীমা সেট করা এবং LRU পলিসি চালু করা:
maxmemory 256mb maxmemory-policy allkeys-lruLFU (Least Frequently Used):
- LFU পলিসি ডেটা মুছে ফেলার জন্য সর্বনিম্ন ফ্রিকোয়েন্টলি এক্সেস করা ডেটা মুছে ফেলে।
- এর মাধ্যমে, রেডিস এমন ডেটা মুছে ফেলবে যা কম ব্যবহৃত হয়, এর ফলে মেমরিতে দীর্ঘস্থায়ী এবং নিয়মিত ব্যবহৃত ডেটা থাকবে।
- এই পলিসিটি দীর্ঘকাল ধরে স্টোর করা ডেটা সংরক্ষণের জন্য উপকারী।
উদাহরণ:
মেমরি সীমা সেট করা এবং LFU পলিসি চালু করা:
maxmemory 256mb maxmemory-policy allkeys-lfuRANDOM:
- RANDOM পলিসি ডেটা মুছে ফেলার জন্য এলোমেলোভাবে ডেটা মুছে ফেলে।
- এটি কোনো নির্দিষ্ট প্যাটার্ন অনুসরণ না করে, মেমরি পূর্ণ হলে এলোমেলো কিপেয়ার মুছে ফেলে।
- এটি সাধারণত লোড ব্যালান্সিংয়ে বা কনফিগারেশন পলিসি অনুযায়ী কার্যকর হতে পারে।
উদাহরণ:
মেমরি সীমা সেট করা এবং RANDOM পলিসি চালু করা:
maxmemory 256mb maxmemory-policy allkeys-random
Eviction Policy ব্যবহার করার জন্য মেমরি সীমা সেট করা
যেকোনো eviction policy ব্যবহারের আগে, আপনাকে রেডিসে মেমরি সীমা (maxmemory) সেট করতে হবে, যাতে রেডিস জানে কখন eviction প্রক্রিয়া শুরু করতে হবে।
উদাহরণ:
maxmemory 100mb
এটি রেডিসে মেমরি সীমা 100MB নির্ধারণ করবে। যখন মেমরি 100MB পার হবে, তখন রেডিস eviction policy অনুযায়ী ডেটা মুছে ফেলবে।
Eviction Policy সারাংশ
- LRU (Least Recently Used): সবচেয়ে কম ব্যবহৃত ডেটা মুছে ফেলা।
- LFU (Least Frequently Used): সবচেয়ে কম বার ব্যবহৃত ডেটা মুছে ফেলা।
- RANDOM: এলোমেলোভাবে ডেটা মুছে ফেলা।
Eviction Policies মেমরি ব্যবস্থাপনার জন্য অত্যন্ত গুরুত্বপূর্ণ, এবং এটি রেডিস সার্ভারের পারফরম্যান্স এবং স্টোরেজ ব্যবস্থাপনা চালাতে সাহায্য করে।
Cache Expiration এবং Eviction Policies ব্যবহার
ক্যাশ এক্সপিরেশন এবং eviction policies ব্যবহার করে আপনি রেডিসের মেমরি ব্যবস্থাপনা এবং পারফরম্যান্স উন্নত করতে পারেন। ডেটা দ্রুত হ্যান্ডলিং এবং মেমরি অপ্টিমাইজেশন নিশ্চিত করতে, আপনাকে রেডিসে TTL (Time to Live) এবং Eviction Policies সেট করা উচিত।
TTL দিয়ে আপনি ক্যাশের জন্য নির্দিষ্ট মেয়াদ তৈরি করতে পারেন, এবং Eviction Policies এর মাধ্যমে যখন মেমরি পূর্ণ হবে তখন ডেটা মুছে ফেলার নিয়ম নির্ধারণ করতে পারেন।
Read more