Redis
 sql >> डेटाबेस >  >> NoSQL >> Redis

Django REST फ्रेमवर्क अभी भी खाली रेडिस कुंजियाँ होने के बाद भी कैश्ड डेटा के साथ प्रतिक्रिया करता है

4 से अनुरोध रेडिस कैश को भी हिट नहीं करता है, क्योंकि यह एक स्थानीय कैश देता है (प्रतिक्रिया कोड में "डिस्क कैश से" नोट करें)।

आपको सार्वजनिक कैश (यानी सभी उपयोगकर्ताओं द्वारा उपयोग किया जाने वाला सर्वर कैश) और निजी कैश (उपयोगकर्ता का ब्राउज़र कैश) के बीच अंतर करना चाहिए।

मुझे लगता है, cache_page . का उपयोग करते समय डेकोरेटर, अनुरोध को कैशिंग करने के अलावा, यह "कैश-कंट्रोल" प्रतिक्रिया शीर्षलेख भी सेट करता है ताकि अनुरोध के निजी कैश की अनुमति मिल सके। ब्राउज़र स्थानीय रूप से अनुरोध को कैश करने के लिए उन शीर्षलेखों का उपयोग करता है, और max-age तक स्थानीय कैश्ड प्रतिक्रिया लौटाता है समाप्त हो रहा है।

इस व्यवहार को रोकने के लिए, सर्वर स्तर पर, आप @never_cache . का उपयोग कर सकते हैं डेकोरेटर, जो सेट करता है Cache-control स्थानीय कैशिंग को रोकने के लिए प्रतिक्रिया शीर्षलेख, या @cache_control(public=True) का उपयोग करें अनुरोध के केवल सार्वजनिक कैश की अनुमति देने के लिए (यह तदनुसार कैश नियंत्रण प्रतिक्रिया शीर्षलेखों को भी बदल देता है)।

कैश को नियंत्रित करने पर अधिक।




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. रेडिस में 32 बिट हस्ताक्षरित पूर्णांक को स्टोर करने का मेमोरी कुशल तरीका

  2. Redis में विशेष वर्णों वाली सैकड़ों हज़ारों कुंजियों को बल्क में कैसे हटाएं

  3. Laravel . में कैशे फ़ेडेड का उपयोग करते समय रेडिस कुंजियाँ नहीं दिखाई गईं

  4. Azure Redis Cache - अनेक त्रुटियाँ TimeoutException:GET {key} का प्रदर्शन करने वाला टाइमआउट

  5. रेडिस टाइप किया गया क्लाइंट