Add this line to your application's Gemfile:
gem 'multi_cache'
And then execute:
$ bundle
Or install it yourself as:
$ gem install multi_cache
After installing, the gem:
Create config/initializers/init_multi_cache.rb and add the lines
MultiCache.configure do |config|
config.redis_instance "<redis-instance>"
end
where is the Redis::Namespace object to be used by MultiCache for caching Please ensure that the is wrapped in quotes
All models where you want to use MultiCache must:
[mandatory] Define a CLASS method MULTI_CACHE_PREFIXES that returns an array of allowed cache prefixes used by the class
[mandatory] Define a CLASS method GEN_CACHE_CONTENT(ID_OR_OBJ, CACHE_PREFIX) that generates a hash that will be cached ID_OR_OBJ is a hash that contains {:id => obj_id, :obj => actual_obj_if_available} CACHE_PREFIX is an optional string that can be used to distinguish between different cached info for the same object.
[optional] Define a CLASS method PARSE_CACHE_CONTENT(CONTENT, CACHE_PREFIX) that parses the cached content once it is read from redis. Sometimes some JSON.parses are required. If not defined, the default method is called (which simply returns the cached value as-is)
Bug reports and pull requests are welcome on GitHub at https://github.com/peerlearning/multi_cache. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the Contributor Covenant code of conduct.
The gem is available as open source under the terms of the MIT License.