2012-10-17 12 views
6

मैं रेल ऐप के लिए वार्निश और रैक-कैश के उद्देश्य के बारे में थोड़ा उलझन में हूं। config/environments/production.rb कैशिंग मेंरेल ऐप के लिए वार्निश और रैक-कैश का बिंदु क्या है?

config.static_cache_control = "public, max-age=3600"

की तरह कुछ के साथ सेट किया जा सकता यह देखते हुए कि, वास्तव में क्या वार्निश और रैक-कैश का उद्देश्य है आप ऐप्लिकेशन रेल में कैशिंग सेट कर सकते हैं तो क्या होगा?

और क्या रैक कैश का उपयोग करने के लिए डिफ़ॉल्ट रेल एप्लिकेशन का कारण बनता है?

उत्तर

7

स्टेटिक कैश नियंत्रण कैश-नियंत्रण के http हेडर प्रभावित करता है। जैसा कि, सर्वर इंटरमीडिएट कैश का सुझाव देता है कि अधिकतम आयु = 3600।

वार्निश, रैक-कैश, विद्रूप और दूसरों को सक्रिय रूप से सर्वर पर सामग्री उत्पन्न कैश। डाटाबेस कॉल महंगे होते हैं और, जब कोई अनुरोध डीबी को कॉल नहीं करता है, तब भी कम बुनियादी ढांचे को अनुरोध करना पड़ता है, आम तौर पर यह तेज़ होगा।

रैक :: कैश रैक मिडलवेयर HTTP मानकों के अनुरूप कैशिंग समर्थन करता है। उनके FAQ page में अन्य कैशिंग समाधानों पर इसके पेशेवरों और विपक्ष के बारे में कुछ अच्छी जानकारी है। यहां एक question comparing rack::cache to varnish on heroku है। रेल में ActiveSupport :: कैश भी है जो खंड और पृष्ठ कैशिंग को संभालता है। मुझे यकीन नहीं है कि अंतर क्या हैं, लेकिन दोनों डिफ़ॉल्ट रूप से रेल में शामिल हैं। मैंने पहले कहा था कि रैक :: कैश डिफ़ॉल्ट नहीं था, लेकिन मैं गलत था।

वार्निश, विद्रूप, और दूसरों को रेल के बाहर मौजूद (जैसे अपाचे/Nginx/आदि) वेब सर्वर के सामने एक अलग प्रक्रिया के रूप में में टिके रहते हैं। वे अत्यधिक विन्यास योग्य, आवेदन स्वतंत्र हैं, और कुछ उन्नत विशेषताएं हैं (जैसे स्क्विड एसीएल)। वार्निश और दूसरों को बुनियादी ढांचे को कम करने का लाभ होता है ताकि सेवा प्राप्त करने के लिए अनुरोध किया जा सके। यदि यह ताजा है, तो अनुरोध वार्निश को हिट करता है और तुरंत ग्राहक को वापस आ जाता है। यह शायद उच्च ट्रैफिक साइटों के लिए सबसे अधिक लाभ है और छोटे ऐप्स के लिए अधिक हो सकता है।

यहाँ Heroku detailing the use of rack::cache in Rails3 पर एक लेख है। पृष्ठ/खंड कैशिंग इन-एप करने और बैकएंड के रूप में memcached का उपयोग करने पर कुछ अच्छे रेलवे भी हैं (जो बहुत महत्वपूर्ण है)। वार्निश और अन्य के लिए, आप this tutorial on varnish's site से शुरू कर सकते हैं।

+1

जो आप वर्णन कर रहे हैं वह सर्वर-साइड कैशिंग की तरह लगता है। क्या रेल स्वयं ने सर्वर-साइड कैशिंग के लिए समर्थन में बनाया है? – user782220

+0

मैंने उत्तर में देर रात उत्तर दिया और इसे बहुत स्पष्ट नहीं किया। मैं इसे अपडेट करूंगा। Rails3 में ActiveSupport :: कैश से कैशिंग समर्थन है, इसलिए मुझे यकीन नहीं है कि रैक :: कैश उस के साथ अनावश्यक है या नहीं। मैं वार्निश के उपयोग पर भी विस्तार करूंगा, बस मुझे एक मिनट दें। – GorrillaMcD

+0

मैंने कुछ गलत जानकारी (उस बारे में खेद है) को सही किया। रैक :: कैश और ActiveSupport :: कैश रेल के दोनों भाग हैं। मुझे यकीन नहीं है कि मतभेद क्या हैं। – GorrillaMcD

संबंधित मुद्दे