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