Redis Client for Crystal
A Redis client for the Crystal programming language.
- Performance (> 680,000 commands per second using pipeline on a MacBook Air with a single client thread)
- LUA Scripting
- All string commands
- All hash commands
- All list commands
- All set commands
- All hyperloglog commands
- All commands for bit operations
- All sorted set commands
Add it to your
dependencies: redis: github: stefanwille/crystal-redis version: ~> 1.7.1
and then install the library into your project:
$ crystal deps
Required Crystal Version
This library needs Crystal version >= 0.18.2
Require the package:
redis = Redis.new
Then you can call Redis commands on the
redis.set("foo", "bar") redis.get("foo")
To get started, see the examples:
- There is a separate git repository crystal-redis-examples with examples.
- start with this basic example
- look at the other examples
- the spec contains even more usage examples
- API documentation -
start reading it at the class
- Redis commands documentation - the original Redis documentation is necessary, as the API documentation above is just a quick reference
- Redis documentation page - general information about Redis and its concepts
I have benchmarked Crystal-Redis against several other client libraries in various programming languages in this blog article.
Here are some results:
Crystal: With this library I get > 680,000 commands per second using pipeline on a MacBook Air with a single client thread.
C: The equivalent program written in C with Hiredis gets me 340,000 commands per second.
Ruby: Ruby 2.2.1 with the redis-rb and Hiredis driver handles 150,000 commands per second.
Read more results for Go, Java, Node.js.
I have exercised every API method in the spec and built some example programs. There is no production use yet.
I took great care to make this library very usable with respect to API, reliability and documentation.
Questions, Bugs & Support
If you have questions or need help, please open a ticket in the GitHub issue tracker. This way others can benefit from the discussion.