Redis

Django Redis দিয়ে তৈরি করা অ্যাপ্লিকেশনগুলিতে ব্যবহৃত ডেটা Redis এর মধ্যে জমা থাকে। Redis একটি ইন-মেমরি ডেটা স্টোরেজ অ্যাপ্লিকেশন। এর মানে হল যে ডেটা Redis এর মেমরিতে জমা থাকে। Redis এর মেমরি একটি উচ্চ-গতির, দ্রুত-অ্যাক্সেসযোগ্য স্টোরেজ ডিভাইস। এটি অ্যাপ্লিকেশনের পারফরম্যান্স উন্নত করতে সাহায্য করে।

Redis এর মধ্যে ডেটা জমা রাখার জন্য, আপনি Redis এর কী-মান ডেটা স্ট্রাকচার ব্যবহার করতে পারেন। কী-মান ডেটা স্ট্রাকচারে, প্রতিটি কী একটি মানকে সংযুক্ত করে। উদাহরণস্বরূপ, আপনি একটি পণ্যের তালিকা দেখানোর জন্য একটি অ্যাপ্লিকেশন তৈরি করতে পারেন। আপনি Redis এর মধ্যে প্রতিটি পণ্যের জন্য একটি কী-মান ডেটা স্ট্রাকচার ব্যবহার করতে পারেন। কীটি পণ্যের আইডি হবে এবং মানটি পণ্যের নাম, বিবরণ, এবং মূল্য হবে।

Django Redis দিয়ে তৈরি করা অ্যাপ্লিকেশনগুলিতে ব্যবহৃত ডেটা Redis এর মধ্যে জমা থাকার কারণে, এটি খুব দ্রুত অ্যাক্সেস করা যায়। এটি অ্যাপ্লিকেশনের পারফরম্যান্স উন্নত করতে সাহায্য করে।

একটি ছোট বহুল ব্যবহৃত অ্যাপ্লিকেশন হল একটি ক্যাশে অ্যাপ্লিকেশন। এই অ্যাপ্লিকেশনটি Redis এর সাথে ব্যবহার করে ব্যবহারকারীর অনুরোধগুলি ক্যাশে করে। এটি ব্যবহারকারীর অনুরোধগুলির জন্য ডাটাবেসের উপর চাপ কমাতে সাহায্য করে।

Download Redis or download from my link

open start redis server go to program/redis folder open redis-cli write ping it was return PONG

redis-cli 
127.0.0.1:6379> ping
PONG

একটি ক্যাশে অ্যাপ্লিকেশন তৈরি করার জন্য, আপনাকে প্রথমে আপনার Django অ্যাপ্লিকেশনে Redis অ্যাডাপ্টারটি ইনস্টল করতে হবে। আপনি pip ব্যবহার করে এটি করতে পারেন:

pip install django redis

একবার আপনি অ্যাডাপ্টারটি ইনস্টল করে নিলে, আপনাকে আপনার Django settings.py ফাইলে Redis এর সাথে সংযোগ সেটিংস যোগ করতে হবে। নিম্নলিখিত কোডটি একটি উদাহরণ দেখায়:

# settings.py

# settings.py

CACHES = {
    'default': {
        'BACKEND': 'django_redis.cache.RedisCache',
        'LOCATION': 'redis://127.0.0.1:6379/1',  # Change this based on your Redis setup
        'OPTIONS': {
            'CLIENT_CLASS': 'django_redis.client.DefaultClient',
        }
    }
}

এই সেটিংসগুলি Redis এর সাথে একটি ডেফল্ট ক্যাশে সেট আপ করে যা localhost:6379 এ হোস্ট করা হয়।

# models.py

from django.db import models

class BlogPost(models.Model):
    title = models.CharField(max_length=255)
    content = models.TextField()
    created_at = models.DateTimeField(auto_now_add=True)

এখন আপনি আপনার Django অ্যাপ্লিকেশন থেকে Redis এর সাথে সংযোগ করতে এবং ডেটা অ্যাক্সেস করতে পারেন। নিম্নলিখিত কোডটি একটি উদাহরণ দেখায়:

# views.py

from django.core.cache import cache
from django.http import JsonResponse
from .models import BlogPost

def get_blog_posts(request):
    cache_key = 'blog_posts'
    blog_posts = cache.get(cache_key)

    if not blog_posts:
        # Cache is empty, fetch data from the database
        blog_posts = list(BlogPost.objects.values('title', 'content'))

        # Update Redis cache with a 5-minute expiration time
        cache.set(cache_key, blog_posts, timeout=300)

        response_source = 'database'
    else:
        response_source = 'cache'

    return JsonResponse({'blog_posts': blog_posts, 'source': response_source})

এই কোডটি একটি "key" নামক একটি কী থেকে Redis থেকে মান পায়। যদি মানটি কেশে না থাকে, তাহলে এটি ডাটাবেস থেকে মানটি পায় এবং 300 সেকেন্ডের জন্য কেশে রাখে।

# urls.py

from django.urls import path
from .views import get_blog_posts

urlpatterns = [
    path('get_blog_posts/', get_blog_posts, name='get_blog_posts'),
]

python manage.py runserver

  • উপসম্পর্কিত অনুরোধগুলির জন্য ডাটাবেসের উপর চাপ কমাতে ক্যাশিং ব্যবহার করুন। উদাহরণস্বরূপ, আপনি একটি পণ্যের তালিকা দেখানোর জন্য একটি অ্যাপ্লিকেশন তৈরি করতে পারেন। আপনি তালিকার প্রতিটি পণ্যের নাম এবং বিবরণ কেশে রাখতে পারেন। এটি ব্যবহারকারীর অনুরোধগুলির জন্য ডাটাবেস থেকে ডেটা পুনরুদ্ধার করার সময় কমাতে সাহায্য করবে।

  • উপসম্পর্কিত অনুরোধগুলির জন্য ডেটা সংরক্ষণ করতে ক্যাশিং ব্যবহার করুন। উদাহরণস্বরূপ, আপনি একটি অ্যাপ্লিকেশন তৈরি করতে পারেন যা ব্যবহারকারীদের তাদের পছন্দগুলি সংরক্ষণ করতে দেয়। আপনি ব্যবহারকারীর পছন্দগুলি কেশে রাখতে পারেন যাতে সেগুলি দ্রুত অ্যাক্সেস করা যায়।

  • অ্যাপ্লিকেশনের পারফরম্যান্স উন্নত করতে ক্যাশিং ব্যবহার করুন। Redis একটি অত্যন্ত দ্রুত ডেটা স্টোরেজ সমাধান। এটি আপনার অ্যাপ্লিকেশনের পারফরম্যান্স উন্নত করতে সাহায্য করতে পারে।

Last updated