सभी WP कोड सार्वजनिक कोड नहीं है
यदि आप कुछ सार्वजनिक जारी करने जा रहे हैं, तो कोवशेनिन ने कहा कि सभी चीजें पूरी तरह से वैध हैं।
यदि आप अपने या अपनी कंपनी के लिए निजी कोड लिखने जा रहे हैं तो चीजें अलग हैं।
किसी भी मामले में बाहरी वस्तु कैश एक बड़ा लाभ है
जब आप कर सकते हैं बाहरी बाहरी वस्तु कैश सेट करने के लिए बहुत अनुशंसित है ।
ग्राहकों और MySQL के बारे में कोवशीन के जवाब में कही गई सभी बातें बहुत सच हैं, और यह देखते हुए कि WP ही और प्लगइन्स का एक गुच्छा ऑब्जेक्ट कैश का उपयोग करता है ... तो आपके द्वारा प्राप्त प्रदर्शन सुधार, सेटअप करने के लिए बिल्कुल (छोटे) प्रयास के लायक है एक आधुनिक कैश सिस्टम जैसे कि रेडिस या मेमकेड।
कैश्ड मान नहीं हो सकता है: यह ठीक है
इसके अलावा, हाँ, एक बाहरी वस्तु कैश विश्वसनीय नहीं है। आपको इस तथ्य पर कभी भी भरोसा नहीं करना चाहिए कि एक क्षणिक है। आपको यह सुनिश्चित करने की आवश्यकता है कि यह काम करता है यदि कैश नहीं हैं, जहां उन्हें होना चाहिए।
कैश संचय नहीं है, कैश कैश है।
कैश का चयन करें
इस उदाहरण को देखें:
function my_get_some_value($key) {
// by default no cache when debug and if no external object_cache
$defUse = ! (defined('WP_DEBUG') && WP_DEBUG) && wp_using_ext_object_cache();
// make the usage of cache filterable
$useCache = apply_filters('my_use_cache', $defUse);
// return cached value if any
if ($useCache && ($cached = get_transient($key))) {
return $cached;
}
// no cached value, make sure your code works with no cache
$value = my_get_some_value_in_some_expensive_way();
// set cache, if allowed
$useCache and set_transient($key, $value, HOUR_IN_SECONDS);
return $value;
}
अपने निजी साइट में इस तरह के एक कोड का उपयोग करना, साइट प्रदर्शन में बहुत सुधार हो सकता है , खासकर यदि आपके पास बहुत सारे उपयोगकर्ता हैं।
ध्यान दें कि:
- डिबग करते समय कैश का उपयोग नहीं किया जाता है, इसलिए उम्मीद है कि आपके विकास के माहौल पर। मेरा विश्वास करो, कैश डिबग को नरक बना सकता है
- डिफ़ॉल्ट रूप से कैश का उपयोग तब भी नहीं किया जाता है जब WP किसी बाहरी ऑब्जेक्ट कैश का उपयोग करने के लिए सेट नहीं होता है। इसका अर्थ है कि MySQL से जुड़ी सभी समस्याएँ मौजूद नहीं हैं, क्योंकि जब आप MySQL का उपयोग करते हैं तो आप कोई क्षणिक उपयोग नहीं करते हैं। संभवतया आसान विकल्प
wp_cache_*
कार्यों का उपयोग करना होगा , इसलिए यदि कोई बाहरी कैश सेटअप नहीं है, तो कैश मेमोरी में होता है, और डेटाबेस कभी भी शामिल नहीं होता है।
- कैश का उपयोग फ़िल्टर करने योग्य है, कुछ किनारे के मामलों को संभालने के लिए जिनका आप सामना कर सकते हैं
नो वेब्सकैल अगर नो कैश
आपको कैश के साथ गति समस्याओं को हल करने का प्रयास नहीं करना चाहिए। यदि आपके पास गति समस्याएं हैं, तो आपको फिर से विचार करना चाहिए कोड।
लेकिन वेबसैल पर एक वेबसाइट को स्केल करने के लिए कैश की बहुत आवश्यकता होती है ।
और कई बार (लेकिन हमेशा नहीं) टुकड़ा, संदर्भ-जागरूक कैश आक्रामक फुलपेज कैशिंग की तुलना में बहुत अधिक लचीला और उपयुक्त है।
आपके सवाल:
क्या मुझे यहाँ पर सब्र का उपयोग करना चाहिए?
यह निर्भर करता है ।
क्या आपका कोड बहुत सारे संसाधनों का उपभोग कर रहा है? यदि नहीं, तो शायद कैश की कोई आवश्यकता नहीं है। जैसा कि कहा गया है, केवल गति का मामला नहीं है। यदि आपका कोड तेजी से चलता है, लेकिन इसके लिए एक युगल उपयोगकर्ताओं के लिए सीपीयू और मेमोरी की एक गुच्छा की आवश्यकता होती है ... तब क्या होता है जब आपके पास 100 या 1000 समवर्ती उपयोगकर्ता होते हैं?
अगर आपको लगता है कि कैश एक अच्छा विचार होगा ..
... और सार्वजनिक कोड है: शायद नहीं । आप चुनिंदा रूप से कैश करने पर विचार कर सकते हैं, जैसे कि सार्वजनिक कोड में मेरे उदाहरण के ऊपर, लेकिन आमतौर पर बेहतर होता है कि आप कार्यान्वयनकर्ताओं के लिए ऐसे फैसले छोड़ दें।
... और निजी कोड है: बहुत शायद हाँ । लेकिन निजी कोड के लिए भी, चुनिंदा रूप से कैश करना अभी भी एक अच्छी बात है, उदाहरण के लिए डिबग।
याद रखें, वैसे भी, यह wp_cache_*
कार्य आपको प्रदूषणकारी डेटाबेस के जोखिम के बिना कैश तक पहुंच प्रदान कर सकता है।
क्या मुझे $ संबंधित_पॉज़ सरणी या $ html_output स्ट्रिंग को कैश करने के लिए क्षणिक एपीआई का उपयोग करना चाहिए?
यह बहुत सी चीजों पर निर्भर करता है । तार कितने बड़े हैं? आप किस बाह्य कैश का उपयोग कर रहे हैं? यदि आप कैशे पोस्ट करने जा रहे हैं, तो आईडी को स्टोर करना एक अच्छा आइडिया हो सकता है, क्योंकि उनकी आईडी द्वारा पोस्ट की एक अच्छी संख्या को क्वेरी करना काफी तेज है।
अंतिम नोट्स
ट्रांसिएंट एपीआई शायद वर्डप्रेस की सबसे अच्छी चीजों में से एक है। प्लगइन्स के लिए धन्यवाद, आप किसी भी प्रकार के कैश सिस्टम के लिए पा सकते हैं, यह बड़ी संख्या में सॉफ़्टवेयर के लिए एक सरल सरल एपीआई बन जाता है जो हुड के नीचे काम कर सकता है।
वर्डप्रेस के बाहर, ऐसी अमूर्तता जो विभिन्न कैशिंग प्रणाली के एक समूह के साथ बॉक्स से बाहर काम करती है, और आपको बिना किसी प्रयास के एक सिस्टम से दूसरे सिस्टम पर स्विच करने की अनुमति देती है।
आप शायद ही कभी मुझे यह कहते हुए सुन सकते हैं कि वर्डप्रेस अन्य आधुनिक चीजों की तुलना में बेहतर है, लेकिन क्षणिक एपीआई उन कुछ चीजों में से एक है जो मुझे वर्डप्रेस के साथ काम नहीं करते हैं।
निश्चित रूप से कैश कठिन है, कोड मुद्दों को हल नहीं करता है और एक चांदी की गोली नहीं है, लेकिन यह कुछ ऐसा है जो आपको काम करने वाले उच्च-ट्रैफ़िक साइट बनाने की आवश्यकता है।
कैश करने के लिए एक अंडर-अनुकूलित MySQL टेबल का उपयोग करने के लिए वर्डप्रेस विचार काफी पागल है, लेकिन अपने आप को कैश से सिर्फ इसलिए दूर रखना बेहतर नहीं है क्योंकि वर्डप्रेस डिफ़ॉल्ट रूप से ऐसा करते हैं।
आपको बस यह समझने की जरूरत है कि चीजें कैसे काम करती हैं, फिर अपनी पसंद बनाएं।