https://github.com/vachhanihpavan/rejson-rb
ReJSON adapter/client for Ruby. Store/Retrieve JSON documents in Redis database using Ruby
https://github.com/vachhanihpavan/rejson-rb
json redis redis-client rejson rejson-client
Last synced: 9 months ago
JSON representation
ReJSON adapter/client for Ruby. Store/Retrieve JSON documents in Redis database using Ruby
- Host: GitHub
- URL: https://github.com/vachhanihpavan/rejson-rb
- Owner: vachhanihpavan
- License: mit
- Created: 2019-12-23T06:53:34.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2023-08-29T04:50:07.000Z (almost 3 years ago)
- Last Synced: 2025-05-28T09:51:21.817Z (about 1 year ago)
- Topics: json, redis, redis-client, rejson, rejson-client
- Language: Ruby
- Homepage: https://rubygems.org/gems/rejson-rb
- Size: 16.6 KB
- Stars: 18
- Watchers: 1
- Forks: 16
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# RedisJSON Ruby Client [](https://travis-ci.com/vachhanihpavan/rejson-rb) [](https://badge.fury.io/rb/rejson-rb)
rejson-rb is a package that allows storing, updating and querying objects as JSON documents in a [Redis](https://redis.io/) database that is extended with the [ReJSON](https://github.com/RedisJSON/RedisJSON) module. The package extends redis-rb's interface with ReJSON's API, and performs on-the-fly serialization/deserialization of objects to/from JSON.
## Installation
Add this line to your application's Gemfile:
```ruby
gem 'rejson-rb'
```
And then execute:
$ bundle install
Or install it yourself as:
$ gem install rejson-rb
## Usage
Make sure you have loaded rejson module in `redis.conf`
```ruby
require 'rejson'
rcl = Redis.new # Get a redis client
# Get/Set/Delete keys
obj = {
'foo': 42,
'arr': [nil, true, 3.14],
'truth': {
'coord': "out there"
}
}
rcl.json_set("root", Rejson::Path.root_path, obj)
# => "OK"
rcl.json_set("root", Rejson::Path.new(".foo"), 56)
# => "OK"
rcl.json_get "root", Rejson::Path.root_path
# => {"foo"=>56, "arr"=>[nil, true, 3.14], "truth"=>{"coord"=>"out there"}}
rcl.json_del "root", ".truth.coord"
# => 1
# Use similar to redis-rb client
rj = rcl.pipelined do
rcl.set "foo", "bar"
rcl.json_set "test", ".", "{:foo => 'bar', :baz => 'qux'}"
end
# => ["OK", "OK"]
```
Path to JSON can be passed as `Rejson::Path.new("")` or `Rejson::Path.root_path`. `` syntax can be as mentioned [here](https://oss.redislabs.com/redisjson/path).
### Refer project WIKI for more detailed documentation.
## Contributing
Bug reports and pull requests are welcome on GitHub at https://github.com/vachhanihpavan/rejson-rb. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [code of conduct](https://github.com/vachhanihpavan/rejson-rb/blob/master/CODE_OF_CONDUCT.md).
For complete documentation about ReJSON's commands, refer to ReJSON's website.
## License
The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
## Code of Conduct
Everyone interacting in the Rejson project's codebase, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/vachhanihpavan/rejson-rb/blob/master/CODE_OF_CONDUCT.md).#