What is Cache? (Redis, Memcached)
ক্যাশিং (Caching) হলো এমন একটি প্রক্রিয়া যার মাধ্যমে ঘন ঘন প্রয়োজন হয় এমন ডেটা একটি দ্রুতগতির টেম্পোরারি স্টোরেজে রেখে দেওয়া হয়, যাতে প্রতিবার মেইন ডেটাবেস থেকে ডেটা আনতে না হয়।
ক্যাশ কেন প্রয়োজন?
- Performance: র্যাম থেকে ডেটা পড়া হার্ডডিস্কের তুলনায় কয়েক হাজার গুণ দ্রুত।
- Reduced Load: মেইন ডেটাবেসের ওপর চাপ কমে।
- Latency: ইউজার অনেক দ্রুত রেসপন্স পায়।
জনপ্রিয় ক্যাশিং টুলস
1. Redis (Remote Dictionary Server)
রেডিস বর্তমানে সবচেয়ে জনপ্রিয় ক্যাশিং সলিউশন। এটি শুধু ক্যাশ নয়, এটি একটি ডেটা স্ট্রাকচার স্টোর (Key-Value, Lists, Sets, Hashes) হিসেবেও কাজ করে।
- Persistent: রেডিস ডেটা হার্ডডিস্কে সেভ করতে পারে, তাই সার্ভার রিস্টার্ট হলেও ডেটা হারানো ভয় কম থাকে।
- Features: Pub/Sub, Lua scripting, এবং High Availability সাপোর্ট করে।
2. Memcached
এটি একটি সিম্পল এবং মাল্টি-থ্রেডেড কী-ভ্যালু স্টোর। এটি মূলত পিওর ক্যাশিং এর জন্য তৈরি।
- Simple: রেডিসের মতো অনেক ফিচার নেই, তবে এটি খুব লাইটওয়েট।
- Multi-threaded: এটি একসাথে অনেক বেশি কনকারেন্ট রিকোয়েস্ট হ্যান্ডেল করতে পারে।
ক্যাশিং কোথায় করা যায়?
- Client Side: ব্রাউজার ক্যাশে (HTML, CSS, JS ফাইল)।
- Server Side: অ্যাপ্লিকেশন লেভেলে মেমোরিতে ডেটা রাখা।
- CDN: গ্লোবাল লোকেশনে কন্টেন্ট ডেলিভারি করার জন্য ক্যাশ করা।
- Database: ডেটাবেস নিজে থেকেই কিছু কুয়েরি রেজাল্ট ক্যাশ করে রাখে।
TIP
যদি আপনার অ্যাপ্লিকেশনে শুধুমাত্র সিম্পল কী-ভ্যালু ক্যাশিং দরকার হয় তবে Memcached যথেষ্ট। কিন্তু যদি জটিল ডেটা স্ট্রাকচার বা পারসিস্টেন্স দরকার হয়, তবে Redis সেরা পছন্দ।