
Security News
Attackers Are Hunting High-Impact Node.js Maintainers in a Coordinated Social Engineering Campaign
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.
@redis/json
Advanced tools
This package provides support for the [RedisJSON](https://redis.io/docs/latest/develop/data-types/json/) module, which adds JSON as a native data type to Redis.
This package provides support for the RedisJSON module, which adds JSON as a native data type to Redis.
Should be used with redis/@redis/client.
:warning: To use these extra commands, your Redis server must have the RedisJSON module installed.
For a complete example, see managing-json.js in the examples folder.
The JSON.SET command stores a JSON value at a given JSON Path in a Redis key.
Here, we'll store a JSON document in the root of the Redis key "mydoc":
await client.json.set('noderedis:jsondata', '$', {
name: 'Roberta McDonald',
pets: [{
name: 'Rex',
species: 'dog',
age: 3,
isMammal: true
}, {
name: 'Goldie',
species: 'fish',
age: 2,
isMammal: false
}]
});
For more information about RedisJSON's path syntax, check out the documentation.
With RedisJSON, we can retrieve all or part(s) of a JSON document using the JSON.GET command and one or more JSON Paths. Let's get the name and age of one of the pets:
const results = await client.json.get('noderedis:jsondata', {
path: [
'.pets[1].name',
'.pets[1].age'
]
});
results will contain the following:
{ '.pets[1].name': 'Goldie', '.pets[1].age': 2 }
RedisJSON includes commands that can atomically update values in a JSON document, in place in Redis without having to first retrieve the entire document.
Using the JSON.NUMINCRBY command, we can update the age of one of the pets like this:
await client.json.numIncrBy('noderedis:jsondata', '.pets[1].age', 1);
And we can add a new object to the pets array with the JSON.ARRAPPEND command:
await client.json.arrAppend('noderedis:jsondata', '.pets', {
name: 'Robin',
species: 'bird',
age: 1,
isMammal: false
});
ioredis is a robust, full-featured Redis client for Node.js. While it does not natively support JSON operations, it can be used in conjunction with RedisJSON to achieve similar functionality. ioredis is known for its performance and support for advanced Redis features like clustering and sentinel.
redis is the official Node.js client for Redis. Like ioredis, it does not have built-in support for JSON operations but can be used with RedisJSON. It is a straightforward and reliable client for basic Redis operations.
node-redis is another popular Redis client for Node.js. It provides a simple and efficient way to interact with Redis but lacks native JSON support. It can be paired with RedisJSON for handling JSON data.
FAQs
This package provides support for the [RedisJSON](https://redis.io/docs/latest/develop/data-types/json/) module, which adds JSON as a native data type to Redis.
The npm package @redis/json receives a total of 5,197,794 weekly downloads. As such, @redis/json popularity was classified as popular.
We found that @redis/json demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 2 open source maintainers collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.

Security News
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.

Security News
Node.js has paused its bug bounty program after funding ended, removing payouts for vulnerability reports but keeping its security process unchanged.