Heroku本身支持memcache作爲插件。我的問題是,作爲一名rails新手,我還不知道如何使用memcache來加速我最耗時的請求(我通過查看newrelic分析知道他們是哪一個)。我們應該在Memcache之上使用像'cache-money'這樣的gem嗎?有人使用act_as_cached了嗎?如何使用memcache加速rails/heroku
我知道這是一個很瑣碎的問題。然而,在搜索了幾個小時後,我找不到一個體面的教程。任何幫助/鏈接表示讚賞!
Heroku本身支持memcache作爲插件。我的問題是,作爲一名rails新手,我還不知道如何使用memcache來加速我最耗時的請求(我通過查看newrelic分析知道他們是哪一個)。我們應該在Memcache之上使用像'cache-money'這樣的gem嗎?有人使用act_as_cached了嗎?如何使用memcache加速rails/heroku
我知道這是一個很瑣碎的問題。然而,在搜索了幾個小時後,我找不到一個體面的教程。任何幫助/鏈接表示讚賞!
到MEMCACHE你可以看Caching in Rails 2.1,然後閱讀memcached documentation(我想你已經閱讀)中的Heroku。
另外,Touch and Cache是一個非常有趣的技術,可以避免在需要刷新緩存數據時編寫Sweepers以刪除緩存的內容。使用touch會自動過期緩存的數據,幾乎不需要編寫新的代碼。
請注意,今天,Heroku的memcached的集成假設你使用Rails> = 2.3.3
主要的想法是,你增加你的耗時的方法來Rails.cache結果(S)(其是通過其訪問您的緩存機制的接口)。當你獲取結果時,緩存機制會搜索它是否可以找到它,或者它是否已經過期。
如果找到它,它將以非常快的速度返回,因爲它會從緩存中取回它。
如果沒有找到它或者它已經過期(您在調用fetch時設置了此選項),它會運行實際的緩慢方法來添加它或將其刷新到緩存中。
最後,除了使用memcached還是使用內置的Rails緩存外,閱讀Rails文檔非常有用:Caching with Rails: An overview。除此之外它談論:
您可以在內存緩存緩存action_cache或者,您可以訪問Rails.cache
緩存是一種非常廣泛的話題,你可以做很多不同的類型。 Memcached沒什麼特別的;它只是一個你想要緩存的東西的存儲介質(因爲mysql可能是你希望持久存儲的對象的存儲空間)。另一種類型的緩存可能更適合您的特定頁面。無論如何,爲了獲得體面的答案,您需要向我們提供有關您的緩慢請求的更多詳細信息。它是什麼類型的頁面?公開,還是每個用戶都不同?大部分時間用於查詢數據庫或渲染視圖? – tfe 2010-09-28 20:22:03
對於這個問題+1。我也在尋找一個體面的rails + memcache教程。 – 2011-11-14 18:33:47