The cache of Rails uses the cache cluster only one. BitzerStore can treat multiple cache clusters.
Add this line to your application's Gemfile:
gem 'bitzer_store'
And then execute:
$ bundle
Or install it yourself as:
$ gem install bitzer_store
1.config
at config/environments/*.rb
MyApp::Application.configure do
BitzerStore.configure(config) do |cache|
cache.default :mem_cache_store, "server0"
cache.top_page :mem_cache_store, "server1", "server2"
cache.obj :dalli, "server3"
cache.footer :file_store, "/tmp"
end
end
The xxx
of cache.xxx
is name of cache cluster.
You should supply cache.default
which is used to cache cluster of default.
You can specify the setting common items. Setting common items will be overwritten with individual setting.
MyApp::Application.configure do
BitzerStore.configure(config) do |cache|
cache.common_setting :memcache_store, "server0", :expires_in => 600
cache.default :namespace => "tsu"
cache.top_page :dalli, "server1"
end
end
The contents of the above is the same as below.
MyApp::Application.configure do
BitzerStore.configure(config) do |cache|
cache.default :memcache_store, "server0", :expires_in => 600, :namespace => "tsu"
cache.top_page :dalli, "server1", :expires_in => 600
end
end
2.Rails.cache When specify no name, to use default cache cluster.
Rails.cache.read("a")
Supply an options with a :sheep key. It's value is cache cluster name.
Rails.cache.read("a", :sheep => :cluster_a)
caches_action, fragment_cache are the same.
<% cache "page", :sheep => :cluster_a do %>
<%= somethong %>
<% end %>
- Fork it
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create new Pull Request