/RedisJSON

RedisJSON - a JSON data type for Redis

Primary LanguageRustOtherNOASSERTION

GitHub issues CircleCI macos Dockerhub Codecov Total alerts

RedisJSON

Forum Discord

RedisJSON is a Redis module that implements ECMA-404 The JSON Data Interchange Standard as a native data type. It allows storing, updating and fetching JSON values from Redis keys (documents).

Primary features:

  • Full support of the JSON standard
  • JSONPath syntax for selecting elements inside documents
  • Documents are stored as binary data in a tree structure, allowing fast access to sub-elements
  • Typed atomic operations for all JSON values types
  • Secondary index support when combined with RediSearch

Quick start

docker run -p 6379:6379 --name redis-stack redis/redis-stack:latest

Documentation

Read the docs at http://redisjson.io

Build

Make sure you have Rust installed: https://www.rust-lang.org/tools/install

Then, build as usual:

cargo build --release

When running the tests, you need to explicitly specify the test feature to disable use of the Redis memory allocator when testing:

cargo test --features test

If you forget to do this, you'll see an error mentioning signal: 4, SIGILL: illegal instruction.

Run

Linux

redis-server --loadmodule ./target/release/librejson.so

Mac OS

redis-server --loadmodule ./target/release/librejson.dylib

Client libraries

Some languages have client libraries that provide support for RedisJSON's commands:

Project Language License Author Stars Package Comment
redis-py Python MIT Redis Labs redis-py-stars pypi
redis-om-python Python BSD-3-Clause Redis redis-om-python-stars PyPi
Jedis Java MIT Redis Jedis-stars Maven
JRedisJSON Java BSD-2-Clause Redis Labs JRedisJSON-stars maven Deprecated
redis-modules-java Java Apache-2.0 Liming Deng @dengliming redis-modules-java-stars maven
redis-om-spring Java BSD-3-Clause Redis redis-om-spring-stars
node-redis Node.js MIT Redis node-redis-stars npm
iorejson Node.js MIT Evan Huang @evanhuang8 iorejson-stars npm
node_redis-rejson Node.js MIT Kyle Davis @stockholmux node_redis-rejson-stars npm
redis-modules-sdk Node.js BSD-3-Clause Dani Tseitlin @danitseitlin redis-modules-sdk-stars npm
ioredis-rejson Node.js MIT Felipe Schulz @schulzf ioredis-rejson-stars npm
redis-om-node Node BSD-3-Clause Redis redis-om-node-stars npm
go-rejson Go MIT Nitish Malhotra @nitishm go-rejson-stars
rejonson Go Apache-2.0 Daniel Krom @KromDaniel rejonson-stars
rueidis Go Apache-2.0 Rueian @rueian rueidis-stars
NReJSON .NET MIT/Apache-2.0 Tommy Hanks @tombatron NReJSON-stars nuget
redis-om-dotnet .NET BSD-3-Clause Redis redis-om-dotnet-stars nuget
phpredis-json PHP MIT Rafa Campoy @averias phpredis-json-stars composer
redislabs-rejson PHP MIT Mehmet Korkmaz @mkorkmaz redislabs-rejson-stars composer
rejson-rb Ruby MIT Pavan Vachhani @vachhanihpavan rejson-rb-stars rubygems

Acknowledgments

RedisJSON is developed with <3 at Redis Labs.

RedisJSON is made possible only because of the existance of this amazing open source project:

License

Redis Source Available License Agreement - see LICENSE