১. API ক্যাশিং (Low-Level Caching)
API রিকোয়েস্টে দ্রুত রেসপন্স দিতে ক্যাশিং ব্যবহার করা গুরুত্বপূর্ণ, কারণ API সাধারণত বারবার কল হয় এবং দ্রুত রেসপন্স দেওয়া প্রয়োজন। এজন্য Low-Level Caching সাধারণত API এর জন্য উপযুক্ত।
যখন API এর জন্য ক্যাশিং ব্যবহার করবেন:
- Django-এর
cache.setএবংcache.getব্যবহার করে নির্দিষ্ট ডেটাসেট ক্যাশে রাখুন। - API এ যখন নির্দিষ্ট ডেটা বারবার রিকোয়েস্ট হবে, তখন Low-Level Caching ব্যবহার করে ওই ডেটা কিছু সময়ের জন্য ক্যাশে রাখবেন।
- ডেটা পরিবর্তন হলে সেই সময় ক্যাশ মুছে ফেলুন ।
২. Django টেমপ্লেট ভিউ ক্যাশিং (View Caching, Template Fragment Caching)
Django টেমপ্লেট ব্যবহারের ক্ষেত্রে পুরো পেজ অথবা নির্দিষ্ট অংশ ক্যাশে রাখা গেলে এটি দ্রুত লোড হয়। ভিউ ক্যাশিং এবং টেমপ্লেট ফ্র্যাগমেন্ট ক্যাশিং এ ক্ষেত্রে বেশ কার্যকর।
ভিউ ক্যাশিং (View Caching):
- পুরো ভিউ বা পেজকে নির্দিষ্ট সময়ের জন্য ক্যাশে রাখতে @cache_page ডেকোরেটর ব্যবহার করা হয়।
- যখন সম্পূর্ণ পেজ খুব বেশি পরিবর্তিত হয় না, তখন এটি বেশ উপকারী।
কোড উদাহরণ:
from django.views.decorators.cache import cache_page
from django.shortcuts import render
from .models import BlogPost
@cache_page(60 * 15) # ১৫ মিনিটের জন্য ক্যাশে
def blog_home(request):
posts = BlogPost.objects.all()
return render(request, 'blog/home.html', {'posts': posts})
টেমপ্লেট ফ্র্যাগমেন্ট ক্যাশিং (Template Fragment Caching):
- যখন পেজের কিছু নির্দিষ্ট অংশ (যেমনঃ জনপ্রিয় পোস্ট, সাইডবার) ক্যাশে রাখতে চান, তখন এটি কার্যকর।
- {% cache %} টেমপ্লেট ট্যাগ দিয়ে নির্দিষ্ট ডিভ, সেকশন ক্যাশে রাখতে পারেন।
কোড উদাহরণ:
{% load cache %}
{% cache 600 popular_posts %}
<div>
<h2>Popular Posts</h2>
<ul>
{% for post in posts %}
<li>{{ post.title }}</li>
{% endfor %}
</ul>
</div>
{% endcache %}
সংক্ষেপে:
- API ক্যাশিং: Low-Level Caching ব্যবহার করুন, যেখানে নির্দিষ্ট ডেটা ক্যাশ করা যায়।
- Django টেমপ্লেট ভিউ ক্যাশিং: View Caching পুরো পেজ ক্যাশে রাখতে; Fragment Caching নির্দিষ্ট অংশ ক্যাশে রাখতে।