تقوم Memcached بتخزين البيانات لكن ريلز لا تستخدمها
-
05-07-2019 - |
سؤال
بيئة.rb:
config.cache_store = :mem_cache_store, '127.0.0.1', { :namespace => RAILS_ENV.to_s }
تطوير.rb:
config.action_controller.perform_caching = true
هذا هو إخراج memcached عندما أتصل بعنوان url.
الحصول على التطوير:views/127.0.0.1:3000/aktionen.xml إرسال التطوير الرئيسي:views/127.0.0.1:3000/aktionen.xml تطوير مجموعة النهاية:views/127.0.0.1:3000/aktionen.xml 0 60 3 مُخزن
مراقب
caches_action :index, :expires_in => 5.seconds, :layout => false, :format => :xml
معلومات
لا تنتج ذاكرة التخزين المؤقت (cache_pages) أي نشاط مخزن مؤقتًا على الإطلاق.يكتب ريلز aktionen.xml في المجلد العام، متجاهلاً أيضًا معلمات الصيغة ومنتهي الصلاحية.يؤدي الاتصال بـ 127.0.0.1:3000/aktionen إلى إنشاء ملف aktionen.html
المحلول
توفر ريلز (اعتبارًا من الإصدار 2.1) مخازن مختلفة للبيانات المخزنة مؤقتًا التي تم إنشاؤها بواسطة ذاكرات التخزين المؤقتة للإجراء والأجزاء.يتم دائمًا تخزين ذاكرة التخزين المؤقت للصفحة على القرص.
يشبه التخزين المؤقت للإجراء إلى حد كبير التخزين المؤقت للصفحة، والفرق الوحيد هو أن طلب الصفحة سيصل دائمًا إلى خادم Rails الخاص بك وسيتم تشغيل عوامل التصفية دائمًا.لإعداد إجراء التخزين المؤقت، قد تبدو وحدة التحكم الخاصة بنا كما يلي:
class BlogController < ApplicationController
layout 'base'
before_filter :authenticate # <--- Check out my authentication
caches_action :list, :show
مزيد من المعلومات هنا: http://railsenvy.com/2007/3/20/Ruby-on-rails-caching-tutorial-part-2
نصائح أخرى
هل حاولت زيادة انتهاء الصلاحية إلى ما يزيد عن 5 ثوانٍ، فقط للتأكد من عدم انتهاء صلاحية البيانات قبل أن تتمكن من اختبار وجودها؟