A Ruby client for the RedisJSON module of the Redis Stack.
Add this line to your application's Gemfile:
gem 'redis-json', '~> 1.0'And then execute:
$ bundleOr you can install the gem on its own:
gem install redis-jsonThis gem builds on the redis-rb gem. It add a Redis#json method, through which you can call the JSON-specific Redis commands:
redis = Redis.new
hash = {
number: 1,
string: 'example',
empty_object: {}
}
redis.json.set 'key', hash, path: '$' # => OKInput values will be converted to JSON strings using JSON.generate, and returned JSON strings will be parsed to Ruby objects using JSON.parse. You can use, respectively, generate_options and parse_options to specify options that will be passed on to the JSON methods:
r.json.get 'key'
# => {'number' => 10}
r.json.get 'key', parse_options: {symbolize_names: true}
# => {:number => 10}The methods are defined to be as similar as possible to the respective RedisJSON commands. key and value parameters become positional arguments, while more "option-like" parameters become keyword arguments (for example, the NX and XX parameters of the JSON.SET command become the nx: and xx: keyword arguments of the set method). The exception to this rule is path: to allow for the different combinations of default and variadic arguments, path is a keyword argument for all methods except get and mset.
RedisJSON loosely follows Semantic Versioning, with a hard guarantee that breaking changes to the public API will always coincide with an increase to the MAJOR number.
Version numbers are in three parts: MAJOR.MINOR.PATCH.
- Breaking changes to the public API increment the
MAJOR. There may also be changes that would otherwise increase theMINORor thePATCH. - Additions, deprecations, and "big" non breaking changes to the public API increment the
MINOR. There may also be changes that would otherwise increase thePATCH. - Bug fixes and "small" non breaking changes to the public API increment the
PATCH.
Notice that any feature deprecated by a minor release can be expected to be removed by the next major release.
Full list of changes in CHANGELOG.md
Bug reports and pull requests are welcome on GitHub at https://github.com/moku-io/redis-json.
The gem is available as open source under the terms of the MIT License.