Django செயல்திறன் அதிகரிப்பு: அமர்வுகளுக்கு தனி Memcached பயன்படுத்துதல்

கேச் புதுப்பிப்புகளின் போது பயனர் வெளியேற்றங்களைத் தடுக்க, அமர்வு மேலாண்மைக்கு தனி Memcached நிகழ்வை செயல்படுத்துவதன் மூலம் Django'வின் செயல்திறனை கணிசமாக மேம்படுத்துவது எப்படி என்பதை அறிக.

Django உருவாக்குநர்களாக, நாங்கள் அடிக்கடி செயல்திறன் தடைகளை சந்திக்கிறோம், குறிப்பாக அமர்வு மேலாண்மையைக் கையாளும்போது. தரவுத்தள ஆதரவு அமர்வுகள் உங்கள் பயன்பாட்டை கணிசமாக மெதுவாக்கலாம். Memcached ஒரு தீர்வை வழங்குகிறது, ஆனால் அது அதன் சொந்த சவாலுடன் வருகிறது: சேவையக மறுதொடக்கங்கள் அல்லது கேச் புதுப்பிப்புகளின் போது அமர்வு தரவை இழத்தல். இந்த இடுகையில், இரண்டு தனி Memcached நிகழ்வுகளைப் பயன்படுத்துவதன் மூலம் இந்த சிக்கலை எவ்வாறு சமாளிப்பது என்பதை நான் உங்களுக்குக் காட்டுகிறேன் - ஒன்று வழக்கமான Python பொருள்களுக்கும் மற்றொன்று அமர்வு தரவுக்கும் அர்ப்பணிக்கப்பட்டது.

ஒற்றை Memcached நிகழ்வின் சிக்கல்

பொதுவான கேச்சிங் மற்றும் அமர்வுகள் ஆகிய இரண்டிற்கும் ஒரே Memcached நிகழ்வைப் பயன்படுத்தும்போது, சேவையகத்தை மறுதொடக்கம் செய்வது அல்லது கேச்சை அழிப்பது அனைத்து பயனர்களும் வெளியேற்றப்படுவதில் முடிவடைகிறது. இது மோசமான பயனர் அனுபவத்தை உருவாக்குகிறது மற்றும் அதிக போக்குவரத்து கொண்ட தளங்களுக்கு குறிப்பாக சிக்கலாக இருக்கலாம்.

தீர்வு: இரட்டை Memcached அமைப்பு

அமர்வுகளுக்கு தனி Memcached நிகழ்வை செயல்படுத்துவதன் மூலம், முக்கிய கேச்சை அழிக்கும்போதும் பயனர் அமர்வுகளை பராமரிக்க முடியும். இதை எவ்வாறு அமைப்பது:

  1. உங்கள் திட்ட கோப்பகத்தில் இரண்டு புதிய கோப்புகளை உருவாக்கவும்:

கோப்பு 1: session_backend.py

இந்த கோப்பு Django’வின் contrib/sessions/backends/cache.py இன் மாற்றியமைக்கப்பட்ட பதிப்பாகும்:

1
2
3
4
5
from django.contrib.sessions.backends.base import SessionBase, CreateError
from yourproject.session_cache import cache

class SessionStore(SessionBase):
    # ... [மீதமுள்ள குறியீடு அசல் இடுகையில் உள்ளதைப் போலவே இருக்கும்]

கோப்பு 2: session_cache.py

இந்த கோப்பு அமர்வுகளுக்கான தனி கேச்சை துவக்குகிறது:

1
2
3
4
5
6
from django.core.cache.backends.memcached import CacheClass
from django.conf import settings

scheme, rest = settings.SESSION_CACHE.split(':', 1)
host = rest[2:-1]
cache = CacheClass(host, {})
  1. உங்கள் settings.py ஐ புதுப்பிக்கவும்:
1
2
SESSION_ENGINE = "yourproject.session_backend"
SESSION_CACHE = 'memcached://127.0.0.1:11200/'
  1. 11200 போர்ட்டில் ஒரு புதிய Memcached நிகழ்வைத் தொடங்கவும்.

இந்த அணுகுமுறையின் நன்மைகள்

  1. மேம்படுத்தப்பட்ட செயல்திறன்: அமர்வுகள் இப்போது நினைவகத்தில் நிர்வகிக்கப்படுகின்றன, தரவுத்தள வினவல்களை விட கணிசமாக வேகமாக உள்ளன.
  2. பயனர் அமர்வு நிலைத்தன்மை: முக்கிய பயன்பாட்டு கேச்சை அழிக்கும்போதும் பயனர்கள் உள்நுழைந்த நிலையில் இருப்பார்கள்.
  3. அளவிடக்கூடியது: அமர்வு சேமிப்பகத்தை பிரிப்பது உங்கள் கேச்சிங் உள்கட்டமைப்பை எளிதாக அளவிட அனுமதிக்கிறது.

செயல்படுத்துதல் குறிப்புகள்

  • உங்கள் Memcached நிகழ்வுகள் சரியாக பாதுகாக்கப்பட்டுள்ளதா என்பதை உறுதிப்படுத்தவும், குறிப்பாக தனி சேவையகத்தில் இயங்கினால்.
  • வழிந்தோடுவதைத் தடுக்க உங்கள் அமர்வு Memcached நிகழ்வின் நினைவக பயன்பாட்டைக் கண்காணிக்கவும்.
  • நீண்ட காலம் செயலற்ற அமர்வுகளை நிர்வகிக்க அமர்வு காலாவதி கொள்கைகளை செயல்படுத்த பரிசீலிக்கவும்.

இந்த இரட்டை Memcached அமைப்பை செயல்படுத்துவதன் மூலம், உங்கள் Django பயன்பாட்டின் செயல்திறன் மற்றும் பயனர் அனுபவத்தில் கணிசமான முன்னேற்றத்தைக் காண்பீர்கள். கவலைகளின் பிரிவு பயனர் அமர்வுகளை சீர்குலைக்காமல் மேலும் நெகிழ்வான கேச் மேலாண்மைக்கு அனுமதிக்கிறது.

இந்த தீர்வை நீங்கள் செயல்படுத்தியுள்ளீர்களா அல்லது கேள்விகள் உள்ளதா? [email protected] இல் என்னைத் தொடர்பு கொள்ள தயங்க வேண்டாம். Django மேம்படுத்தல்களைப் பற்றி விவாதிக்கவும், சக உருவாக்குநர்கள் தங்கள் பயன்பாடுகளை மேம்படுத்த உதவவும் நான் எப்போதும் ஆர்வமாக உள்ளேன்.

மகிழ்ச்சியான குறியீடு, உங்கள் Django பயன்பாடுகள் எப்போதும் வேகமாகவும் நிலையாகவும் இருக்கட்டும்!

Writing about the internet