2010-04-12 8 views
5

मैं क्वेरी परिणामों को कैश करना चाहता हूं ताकि जब तक मैं कैश को अमान्य नहीं कर देता, वही परिणाम "एक से अधिक अनुरोधों के लिए" प्राप्त किए जाते हैं। उदाहरण के लिए, मैं एक साइडबार प्रस्तुत करना चाहता हूं जिसमें पुस्तक के सभी पृष्ठ हैं, जो कि पुस्तक की अनुक्रमणिका की तरह है। जैसा कि मैं इसे पुस्तक के प्रत्येक पृष्ठ पर दिखाना चाहता हूं, मुझे इसे हर अनुरोध पर लोड करना होगा। मैं एक्शन कैशिंग का उपयोग कर रेंडर साइडबार इंडेक्स को कैश कर सकता हूं, लेकिन मैं वास्तव में क्वेरी परिणामों को कैश करना चाहता हूं जिनका उपयोग साइडबार के लिए एचटीएमएल उत्पन्न करने के लिए किया जाता है। क्या रेल इसे करने का एक तरीका प्रदान करते हैं? मैं यह कैसे कर सकता हूं?एकाधिक अनुरोधों में रेल में क्वेरी कैश करने के लिए कैसे करें

उत्तर

3

आप ActiveSupport's cache store का उपयोग कर क्वेरी परिणामों को कैश कर सकते हैं, जो कि यदि आप अपना स्वयं का कार्यान्वयन प्रदान करते हैं तो मेमोरी स्टोर जैसे मेमकैड या डेटाबेस स्टोर द्वारा समर्थित किया जा सकता है। ध्यान दें कि यदि आप एकाधिक रूबी प्रक्रियाओं में कैश साझा करते हैं तो आप डेटाबेस स्टोर का उपयोग करना चाहेंगे जो मामला होगा यदि आप Mongrel Cluster या Phusion Passenger पर तैनात कर रहे हैं।

0

तुम भी नियंत्रक में डेटाबेस क्वेरी करने से पहले अपनी कार्रवाई कैश के लिए जांच कर सकता है।

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