اذهب إلى المحتوى

السؤال

نشر

لدي مشروع مبني بإستخدام جانغو Django، ولكن بسبب أني أقوم بعمل الكثير من إستعلامات SQL أجد أن المشروع أصيح بطيئًا بعض الشيء، وعند البحث عن حل للمشكلة سمعت عن redis-cache ، ولكن لا أعرف من أين أبدأ في إستخدامه.

هل يتم استخدامه كطبقة بين جانغو Django و بين قاعدة البيانات الخاص بي، عن طريق تخزين استعلامات SQL بطريقة أو بأخرى؟ أم أنه من المفترض أن يتم استخدامها مباشرة كقاعدة بيانات بدلًا من MySQL بالكامل؟

Recommended Posts

  • 1
نشر

Redis هو عبارة عن مَخزَن قيم مفاتيح key value store مفتوح المصدر يمكنه العمل كمخزن لتخزين البيانات في الذاكرة in-memory store أو كمخزن تخزين بيانات مؤقت. يُمكن استخدامه إمّا كخادوم قاعدة بيانات لوحده أو مرتبطًا مع قاعدة بيانات أخرى مثل MySQL لتسريع بعض الأشياء.

يتم إستخدام Redis مع Django كذاكرة تخزين مؤقت cache لتخفيف الحمل الزائد على عمليات الاستعلام queries التي تتم على قاعدة البيانات المُستخدمة.

إنطلاقا من النسحة رقم 4.0 لجانغو أصبح التخزين المؤقت باستخدام Redis من الأمور المُدمجة والمدعومة بعد أن كان عبارة عن تطبيق طرف ثالث.

لاستعمل Redis مع جانغو نحتاجُ أولاً إلى تثبيت الخادم الخاص به. ندخل إلى  الموقع الرسمي ونقوم بتثبيته على حسب النظام الذي نستخدمه.

بعد تثبيت Redis سنحتاج إلى تثبيت redis-py وهي مكتبة في بايثون تقوم بالربط مع الخادم.

لاستخدام Redis كخلفية لذاكرة التخزين المؤقت مع Django نقوم ب:

  • في ملف الإعدادات settings.py نضيف django.core.cache.backends.redis.RedisCache.
CACHES = {
    'default': {
        'BACKEND': 'django.core.cache.backends.redis.RedisCache',
        'LOCATION': 'redis://127.0.0.1:6379', # هنا ضع عنوان الايبي مع المنفذ الخاص بالخادم
                                              # redis
    }
}
  • عادة ما يكون Redis محمياً باسم مستخدم وكلمة مرور نضيفهما إلى عنوان URL:
CACHES = {
    'default': {
        'BACKEND': 'django.core.cache.backends.redis.RedisCache',
        'LOCATION': 'redis://username:password@127.0.0.1:6379',
    }
}
  • إذا كنا نملك عدة خوادم Redis تم إعدادها في وضع النسخ المتماثل (replication)، فيمكننا إضافتها على الشكل التالي:
CACHES = {
    'default': {
        'BACKEND': 'django.core.cache.backends.redis.RedisCache',
        'LOCATION': [
            'redis://127.0.0.1:6379', # القائد
            'redis://127.0.0.1:6378', # النسخة رقم 1
            'redis://127.0.0.1:6377', # النسخة رقم 2
        ],
    }
}

هكذا نكون قد أتممنا إضافة Redis إلى جانغو.

للإستزادة من المعلومات يمكن الإطلاع على المقالات التالية الموجودة في أكاديمية حسوب:

 

  • 0
نشر

يمكنك استخدام مكتبة django-redis

python -m pip install django-redis

لبدء استخدام django-redis  يجب عليك تغيير إعدادات ذاكرة التخزين المؤقت لـ Django إلى شيء مثل:

CACHES = {
    "default": {
        "BACKEND": "django_redis.cache.RedisCache",
        "LOCATION": "redis://127.0.0.1:6379/1",
        "OPTIONS": {
            "CLIENT_CLASS": "django_redis.client.DefaultClient",
        }
    }
}

يمكنك القراءة حول استخدامات المكتبة ككيفية حماية redis بكلمة سر وخصائص أخرى في التوثيق الرسمي للمكتبة

django redis

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...