Dude
Dude is a dead simple Redis cache.
Installation
-
Add the dependency to your
shard.yml
:dependencies: dude: github: GrottoPress/dude
-
Run
shards update
-
Require and configure Dude:
# ->>> src/app/config.cr # ... require "dude" Dude.configure do |settings| settings.redis_url = "redis://localhost:6379/0?initial_pool_size=5&max_idle_pool_size=10" settings.redis_key_prefix = "dude" end # ...
Usage
-
Fetch raw value from cache
# Sets and returns block if key not found in cache Dude.get("key", 1.minute) { "value" } # => `value`
-
Fetch JSON-serializable value from cache
struct User include JSON::Serializable getter id : Int32 def initialize(@id) end end # Sets and returns block if key not found in cache Dude.get(User, "key", 1.minute) { User.new(2) } # => `User(@id=2)`
Development
Create a .env.sh
file:
#!/bin/bash
export REDIS_URL='redis://localhost:6379/0'
Update the file with your own details. Then run tests with source .env.sh && crystal spec
.
Contributing
- Fork it
- Switch to the
master
branch:git checkout master
- Create your feature branch:
git checkout -b my-new-feature
- Make your changes, updating changelog and documentation as appropriate.
- Commit your changes:
git commit
- Push to the branch:
git push origin my-new-feature
- Submit a new Pull Request against the
GrottoPress:master
branch.