我有一個rails應用程序,它是一種存儲庫。 存儲在該模型的數據庫中的記錄(幾乎)不會更改,但始終會被讀取。也沒有很多。 我想以通用的方式將這些記錄存儲在緩存中。 我想這樣做acts_as_cached,但這裏是我的問題:在rails中緩存模型
爲緩存我找不到行徑體面的文件(無論是我能找到它的資料庫)
我不想使用memcached,但更簡單一些(靜態變量,或類似的東西)。
你知道我可以用來做什麼寶石嗎?
感謝
編輯
我仍然在尋找類似的cache_flu但沒有memcached的
我有一個rails應用程序,它是一種存儲庫。 存儲在該模型的數據庫中的記錄(幾乎)不會更改,但始終會被讀取。也沒有很多。 我想以通用的方式將這些記錄存儲在緩存中。 我想這樣做acts_as_cached,但這裏是我的問題:在rails中緩存模型
爲緩存我找不到行徑體面的文件(無論是我能找到它的資料庫)
我不想使用memcached,但更簡單一些(靜態變量,或類似的東西)。
你知道我可以用來做什麼寶石嗎?
感謝
編輯
我仍然在尋找類似的cache_flu但沒有memcached的
acts_as_cached東西被cache_fu取代。
您可以將數據存儲在Rails默認緩存中,或者,似乎是最流行的選擇,請使用使用memcached的mem_cache_store。
#production.rb
config.cache_store = :mem_cache_store, '127.0.0.1:11211', {:namespace => "production"}
#some_helper.rb
def get_some_data
Rails.cache.fetch('some_reference'){Model.find_some_data}
end
參見: http://guides.rubyonrails.org/caching_with_rails.html
另外,如果你使用的乘客你需要這樣做:
if defined?(PhusionPassenger)
PhusionPassenger.on_event(:starting_worker_process) do |forked|
if forked
Rails.cache.instance_variable_get(:@data).reset if Rails.cache.class == ActiveSupport::Cache::MemCacheStore
else
# No need to do anything.
end
end
end
你能否將數據存儲在一個文件並加載它變成常數(如Ruby on Rails: Talk所示):
require "yaml"
class ApplicationController < ActionController::Base
MY_CONFIG = YAML.load(File.read(File.join(RAILS_ROOT, "config", "my_config.yml")))
end
我開始了一個名爲cache_me的gem,它可以與任何cache_store一起使用,它可以在Alpha模式下工作,但你可以嘗試然後打開一些pull請求/問題。
https://github.com/arunagw/cache_me
我會讓你知道什麼時候它已經準備好使用全模式。
有沒有類似cache_fu不會使用memcache但更簡單的東西? – Arthur 2010-06-25 10:43:31