redis_cache
A Ruby-on-Rails-like cache store, that stores data in Redis.
Installation
- 
Add the dependency to your
shard.yml:dependencies: redis_cache: github: sschekotikhin/redis_cache - 
Run
shards install 
Usage
require "redis_cache"
It's important to note that Redis cache value must be string.
Basic example
# configure via Habitat
RedisCache.configure do |config|
  # redis connection
  config.redis = Redis::PooledClient.new(
    host: "localhost",
    port: 6379,
    database: 0,
    pool_size: 1
  )
  # # write data to redis when fetch function called?
  config.fetch_with_cache = true
  # cache-key prefix
  config.prefix = "cache_prefix"
end
# fetch method
#
# This method does both reading and writing to the cache.
# Passed block will be executed in the event of a cache miss.
# The return value of the block will be written to the cache under the given cache key, and that return value will be returned.
# In case of cache hit, the cached value will be returned without executing the block.
# Passed block to the fetch method should return a value that can be converted to a string via `to_s` method.
# It can be JSON-string, array of numbers, etc.
# `key` argument also can be array, symbol, number, etc.
result = RedisCache.fetch(key: [:foo, :bar, :v1], ttl: 86400) do
  # ...
  # some code
  # ...
  value.to_s
end
# read method
# Searches Redis for a value by a given key.
result = RedisCache.read(key: "foo:bar")
# write method
# Writes the value for the given key to Redis.
result = RedisCache.write(key: [:foo, :bar], value: "cached value")
# delete method
# Removes the value in Redis by the given key.
RedisCache.delete(key: [:foo, :bar])
Contributing
- Fork it (https://github.com/your-github-user/redis_cache/fork)
 - 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 a new Pull Request
 
Contributors
- SShekotihin - creator and maintainer