आप डेटा जरूरी है कि की जरूरत नहीं है अद्यतन वास्तविक समय है, और मेरे लिए देखे जाने की संख्या उनमें से एक है, तो आप एक ऑब्जेक्ट मेम्कैश में जमा हो जाती को क्षेत्र समाप्त हो रहा है जोड़ सकता है के साथ काम कर रहे हैं ।
एक बार यह समाप्ति होने के बाद, यह डेटाबेस पर वापस जायेगा और नया मान पढ़ेगा, लेकिन तब तक यह इसे अकेला छोड़ देगा।
बेशक नई पोस्ट के लिए आप इसे अधिक बार अपडेट करना चाहते हैं, लेकिन आप इसके लिए कोड कर सकते हैं।
मेमकैच केवल आपके ऑब्जेक्ट की एक प्रति को अपने उदाहरणों में से एक में संग्रहीत करता है, न कि उनमें से कई में, इसलिए मैं ऑब्जेक्ट लॉकिंग या कुछ भी नहीं जानता। डेटाबेस को संभालने के लिए यह है, न कि आपके कैश।
संपादित करें:
Memcache जब तुम हो रही है और विभिन्न सर्वरों कि आपके डेटा clobbered कर नहीं होगा से स्थापित करने कि कोई गारंटी नहीं प्रदान करता है।
मेम्कैश डॉक्स से:
- आदेशों की एक श्रृंखला परमाणु नहीं है। यदि आप किसी आइटम के विरुद्ध 'प्राप्त' जारी करते हैं, तो डेटा पर काम करें, फिर इसे 'मेमकैड' में वापस सेट करना चाहते हैं, तो आपको उस मान पर काम करने वाली एकमात्र प्रक्रिया होने की गारंटी नहीं है। समानांतर में, आप किसी अन्य चीज़ द्वारा मूल्य सेट को ओवरराइट करना समाप्त कर सकते हैं।
दौड़ की स्थिति और पुराना डेटा को ध्यान में रखने के रूप में आप कैश डेटा के लिए आपके आवेदन डिजाइन
एक बात, दौड़ की स्थिति और सामयिक पुराना डेटा से निपटने के लिए कैसे है।
कहें कि आप अपने आवेदन में साइडबार पर प्रदर्शन के लिए नवीनतम पांच टिप्पणियां कैश करते हैं। आप तय करते हैं कि प्रति मिनट केवल डेटा को ताज़ा करने की आवश्यकता है। हालांकि, आप यह याद रखने की उपेक्षा करते हैं कि इस साइडबार डिस्प्ले को प्रति सेकंड 50 बार प्रस्तुत किया जाता है! इस प्रकार, एक बार 60 सेकंड चारों ओर घूमते हैं और कैश की समयसीमा समाप्त हो जाती है, अचानक 10+ प्रक्रियाएं उसी कैश को दोबारा चलाने के लिए समान SQL क्वेरी चला रही हैं। जब भी कैश की समयसीमा समाप्त हो जाती है, तो अचानक एसक्यूएल यातायात का विस्फोट होगा।
इससे भी बदतर, आपके पास एक ही डेटा को अपडेट करने वाली कई प्रक्रियाएं हैं, और गलत कैश से डेटिंग समाप्त होता है। फिर आपके पास पुराना, पुराने डेटा के बारे में तैरता है।
किसी को हमारे कैश को पॉप्युलेट करने या दोबारा बनाने में संभावित मुद्दों के बारे में सावधान रहना चाहिए। याद रखें कि memcached की जांच, एसक्यूएल लाने, और memcached में भंडारण की प्रक्रिया परमाणु नहीं है!
समस्या यह है कि हम देखे जाने की संख्या चाहते हैं (इस मामले में, लेकिन एक ही समस्या के साथ अन्य स्थितियों देखते हैं) को लाइव अपडेट रहने के लिए - आप पोस्ट क्लिक करें, और देखे जाने की संख्या बढ़ जाती है। इसके अलावा हम कैश ऑब्जेक्ट को यथासंभव लंबे समय तक जीने के लिए, प्रदर्शन के कारणों के लिए चाहते हैं। – Micael
आप इस बात की गारंटी नहीं दे सकते कि आप जिस तरीके से ऐसा करना चाहते हैं, उसमें आप क्या करना चाहते हैं। क्या memcache आपको स्केलेबिलिटी देता है, कच्चे प्रदर्शन नहीं। – Nathan