2010-09-28 10 views
7

पर मेमकैच का उपयोग कैसे करें हेरोकू एक एडन के रूप में मूल रूप से memcache का समर्थन करता है। मेरी समस्या यह है कि, अभी भी रेल की नौसिखिया होने के नाते, मुझे कोई संकेत नहीं है कि मेरे सबसे अधिक समय लेने वाले अनुरोध को तेज करने के लिए मेमकेचे का उपयोग कैसे करें (मुझे पता है कि वे न्यूरेलिक विश्लेषण को देखकर कौन हैं)। क्या हमें memcache के शीर्ष पर 'कैश-मनी' जैसे मणि का उपयोग करना चाहिए? क्या कोई अब act_as_cached का उपयोग करता है?गति-अप रेल/हेरोकू

मुझे पता है कि यह एक बहुत ही मामूली सवाल है। फिर भी वेब के लिए वेब खोजने के बाद, मुझे एक सभ्य ट्यूटोरियल नहीं मिला। किसी भी मदद/लिंक की सराहना की!

+0

कैशिंग एक है बहुत व्यापक विषय और आप इसके कई अलग-अलग प्रकार कर सकते हैं। Memcached कुछ खास नहीं है; यह केवल उन चीज़ों के लिए एक स्टोरेज माध्यम है जिन्हें आप कैश करना चाहते हैं (क्योंकि MySQL आपके ऑब्जेक्ट्स के लिए स्टोरेज हो सकता है जो आप लगातार रहना चाहते हैं)। एक और प्रकार का कैशिंग आपके विशेष पृष्ठ के लिए अधिक उपयुक्त हो सकता है। किसी भी मामले में, आपको सभ्य उत्तरों प्राप्त करने के लिए हमें अपने धीमे अनुरोध के बारे में अधिक जानकारी देना होगा। यह किस प्रकार का पृष्ठ है? प्रत्येक उपयोगकर्ता के लिए सार्वजनिक, या अलग? क्या अधिकांश समय डेटाबेस से पूछताछ करने या विचारों को प्रस्तुत करने में बिताया जाता है? इस प्रश्न के लिए – tfe

+1

+1। मैं एक सभ्य रेल + memcache ट्यूटोरियल भी तलाश रहा हूँ। –

उत्तर

4

साथ मेम्कैश को आप Caching in Rails 2.1 घड़ी और फिर पढ़ सकते हैं का उपयोग कर सकते memcached documentation Heroku में (मैं आप पहले से ही यह पढ़ लिया है लगता है)।

इसके अलावा, Touch and Cache कैश किए गए डेटा को रीफ्रेश करने की आवश्यकता होने पर कैश सामग्री को हटाने के लिए स्वीपर लिखने से बचने के लिए काफी रोचक तकनीक है। स्पर्श का उपयोग स्वचालित रूप से नए कोड लिखने की आवश्यकता के साथ कैश किए गए डेटा को समाप्त कर देगा।

कृपया ध्यान दें कि आज Heroku memcached एकीकरण हो जाती है आप उपयोग कर रहे रेल> = 2.3.3

मुख्य विचार यह है कि आप (अपने समय लेने Rails.cache को विधि का परिणाम (रों) जोड़ने के लिए जो वह इंटरफ़ेस है जिसके माध्यम से आप अपने कैशिंग तंत्र तक पहुंचते हैं)। जब आप उस परिणाम को प्राप्त करते हैं तो कैशिंग तंत्र यह देखने के लिए खोज करता है कि क्या यह इसे पा सकता है या यदि यह समाप्त नहीं हुआ है।

यदि यह पाता है, तो यह इसे बहुत तेज़ कर देता है क्योंकि यह इसे कैश से ले जाता है।

यदि यह नहीं मिलता है या यह समाप्त हो गया है (आप इसे कॉल करते समय सेट करते हैं), तो इसे जोड़ने या इसे कैश में रीफ्रेश करने के लिए वास्तविक धीमी विधि चलती है।

अंत में, रेलवे दस्तावेज को पढ़ने के लिए बहुत उपयोगी है, भले ही आप memcached या अंतर्निहित रेल कैशिंग का उपयोग कर रहे हों: Caching with Rails: An overview। अन्य बातों के अलावा यह बात करती है के बारे में:

  • पृष्ठ कैशिंग
  • कार्रवाई कैशिंग
  • टुकड़ा कैशिंग
  • स्वीपर
  • एसक्यूएल कैशिंग
  • और बहुत कुछ ...
0

आप मेम्कैश पर action_cache कैश कर सकते हैं या आप Rails.cache