An open API service indexing awesome lists of open source software.

https://github.com/tsukasaoishi/bitzer_store

BitzerStore can treat multiple cache clusters in Rails.
https://github.com/tsukasaoishi/bitzer_store

cache-cluster rails ruby

Last synced: 9 months ago
JSON representation

BitzerStore can treat multiple cache clusters in Rails.

Awesome Lists containing this project

README

          

# BitzerStore

[![Gem Version](https://badge.fury.io/rb/bitzer_store.svg)](http://badge.fury.io/rb/bitzer_store) [![Build Status](https://travis-ci.org/tsukasaoishi/bitzer_store.svg?branch=master)](https://travis-ci.org/tsukasaoishi/bitzer_store) [![Code Climate](https://codeclimate.com/github/tsukasaoishi/bitzer_store/badges/gpa.svg)](https://codeclimate.com/github/tsukasaoishi/bitzer_store)

The cache of Rails uses the cache cluster only one.
BitzerStore can treat multiple cache clusters.

## Installation

Add this line to your application's Gemfile:

gem 'bitzer_store'

And then execute:

$ bundle

Or install it yourself as:

$ gem install bitzer_store

## Usage

1.config
at ```config/environments/*.rb```

```ruby
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.

```ruby
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.

```ruby
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.

```ruby
Rails.cache.read("a")
```

Supply an options with a :sheep key. It's value is cache cluster name.

```ruby
Rails.cache.read("a", :sheep => :cluster_a)
```

caches_action, fragment_cache are the same.

```ruby
<% cache "page", :sheep => :cluster_a do %>
<%= somethong %>
<% end %>
```

## Contributing

1. Fork it
2. Create your feature branch (`git checkout -b my-new-feature`)
3. Commit your changes (`git commit -am 'Add some feature'`)
4. Push to the branch (`git push origin my-new-feature`)
5. Create new Pull Request