You've already forked node-redis
mirror of
https://github.com/redis/node-redis.git
synced 2025-12-25 00:40:59 +03:00
Updates
This commit is contained in:
@@ -12,26 +12,26 @@
|
||||
<div class="col-content">
|
||||
<div class="tsd-page-title">
|
||||
<h2>@redis/json</h2></div>
|
||||
<div class="tsd-panel tsd-typography"><a id="md:redisjson" class="tsd-anchor"></a><h1><a href="#md:redisjson">@redis/json</a></h1><p>This package provides support for the <a href="https://redisjson.io">RedisJSON</a> module, which adds JSON as a native data type to Redis. It extends the <a href="https://github.com/redis/node-redis">Node Redis client</a> to include functions for each of the RedisJSON commands.</p>
|
||||
<div class="tsd-panel tsd-typography"><a id="md:redisjson" class="tsd-anchor"></a><h1><a href="#md:redisjson">@redis/json</a></h1><p>This package provides support for the <a href="https://redis.io/docs/stack/json/">RedisJSON</a> module, which adds JSON as a native data type to Redis. It extends the <a href="https://github.com/redis/node-redis">Node Redis client</a> to include functions for each of the RedisJSON commands.</p>
|
||||
<p>To use these extra commands, your Redis server must have the RedisJSON module installed.</p>
|
||||
<a id="md:usage" class="tsd-anchor"></a><h2><a href="#md:usage">Usage</a></h2><p>For a complete example, see <a href="https://github.com/redis/node-redis/blob/master/examples/managing-json.js"><code>managing-json.js</code></a> in the Node Redis examples folder.</p>
|
||||
<a id="md:storing-json-documents-in-redis" class="tsd-anchor"></a><h3><a href="#md:storing-json-documents-in-redis">Storing JSON Documents in Redis</a></h3><p>The <a href="https://oss.redis.com/redisjson/commands/#jsonset"><code>JSON.SET</code></a> command stores a JSON value at a given JSON Path in a Redis key.</p>
|
||||
<a id="md:storing-json-documents-in-redis" class="tsd-anchor"></a><h3><a href="#md:storing-json-documents-in-redis">Storing JSON Documents in Redis</a></h3><p>The <a href="https://redis.io/commands/json.set/"><code>JSON.SET</code></a> command stores a JSON value at a given JSON Path in a Redis key.</p>
|
||||
<p>Here, we'll store a JSON document in the root of the Redis key "<code>mydoc</code>":</p>
|
||||
<pre><code class="language-javascript"><span class="hl-0">import</span><span class="hl-1"> { </span><span class="hl-2">createClient</span><span class="hl-1"> } </span><span class="hl-0">from</span><span class="hl-1"> </span><span class="hl-3">'redis'</span><span class="hl-1">;</span><br/><br/><span class="hl-1">...</span><br/><span class="hl-0">await</span><span class="hl-1"> </span><span class="hl-2">client</span><span class="hl-1">.</span><span class="hl-2">json</span><span class="hl-1">.</span><span class="hl-4">set</span><span class="hl-1">(</span><span class="hl-3">'noderedis:jsondata'</span><span class="hl-1">, </span><span class="hl-3">'$'</span><span class="hl-1">, {</span><br/><span class="hl-1"> </span><span class="hl-2">name:</span><span class="hl-1"> </span><span class="hl-3">'Roberta McDonald'</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-2">pets:</span><span class="hl-1"> [</span><br/><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-2">name:</span><span class="hl-1"> </span><span class="hl-3">'Rex'</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-2">species:</span><span class="hl-1"> </span><span class="hl-3">'dog'</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-2">age:</span><span class="hl-1"> </span><span class="hl-5">3</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-2">isMammal:</span><span class="hl-1"> </span><span class="hl-6">true</span><br/><span class="hl-1"> },</span><br/><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-2">name:</span><span class="hl-1"> </span><span class="hl-3">'Goldie'</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-2">species:</span><span class="hl-1"> </span><span class="hl-3">'fish'</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-2">age:</span><span class="hl-1"> </span><span class="hl-5">2</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-2">isMammal:</span><span class="hl-1"> </span><span class="hl-6">false</span><br/><span class="hl-1"> }</span><br/><span class="hl-1"> ]</span><br/><span class="hl-1">});</span>
|
||||
</code><button>Copy</button></pre>
|
||||
<p>For more information about RedisJSON's path syntax, <a href="https://oss.redis.com/redisjson/path/">check out the documentation</a>.</p>
|
||||
<a id="md:retrieving-json-documents-from-redis" class="tsd-anchor"></a><h3><a href="#md:retrieving-json-documents-from-redis">Retrieving JSON Documents from Redis</a></h3><p>With RedisJSON, we can retrieve all or part(s) of a JSON document using the <a href=""><code>JSON.GET</code></a> command and one or more JSON Paths. Let's get the name and age of one of the pets:</p>
|
||||
<p>For more information about RedisJSON's path syntax, <a href="https://redis.io/docs/stack/json/path/">check out the documentation</a>.</p>
|
||||
<a id="md:retrieving-json-documents-from-redis" class="tsd-anchor"></a><h3><a href="#md:retrieving-json-documents-from-redis">Retrieving JSON Documents from Redis</a></h3><p>With RedisJSON, we can retrieve all or part(s) of a JSON document using the <a href="https://redis.io/commands/json.get/"><code>JSON.GET</code></a> command and one or more JSON Paths. Let's get the name and age of one of the pets:</p>
|
||||
<pre><code class="language-javascript"><span class="hl-6">const</span><span class="hl-1"> </span><span class="hl-7">results</span><span class="hl-1"> = </span><span class="hl-0">await</span><span class="hl-1"> </span><span class="hl-2">client</span><span class="hl-1">.</span><span class="hl-2">json</span><span class="hl-1">.</span><span class="hl-4">get</span><span class="hl-1">(</span><span class="hl-3">'noderedis:jsondata'</span><span class="hl-1">, {</span><br/><span class="hl-1"> </span><span class="hl-2">path:</span><span class="hl-1"> [</span><br/><span class="hl-1"> </span><span class="hl-3">'.pets[1].name'</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-3">'.pets[1].age'</span><br/><span class="hl-1"> ]</span><br/><span class="hl-1">});</span>
|
||||
</code><button>Copy</button></pre>
|
||||
<p><code>results</code> will contain the following:</p>
|
||||
<pre><code class="language-javascript"><span class="hl-1"> { </span><span class="hl-3">'.pets[1].name'</span><span class="hl-1">: </span><span class="hl-3">'Goldie'</span><span class="hl-1">, </span><span class="hl-3">'.pets[1].age'</span><span class="hl-1">: </span><span class="hl-5">2</span><span class="hl-1"> }</span>
|
||||
</code><button>Copy</button></pre>
|
||||
<a id="md:performing-atomic-updates-on-json-documents-stored-in-redis" class="tsd-anchor"></a><h3><a href="#md:performing-atomic-updates-on-json-documents-stored-in-redis">Performing Atomic Updates on JSON Documents Stored in Redis</a></h3><p>RedisJSON includes commands that can atomically update values in a JSON document, in place in Redis without having to first retrieve the entire document.</p>
|
||||
<p>Using the <a href="https://oss.redis.com/redisjson/commands/#jsonnumincrby"><code>JSON.NUMINCRBY</code></a> command, we can update the age of one of the pets like this:</p>
|
||||
<p>Using the <a href="https://redis.io/commands/json.numincrby/"><code>JSON.NUMINCRBY</code></a> command, we can update the age of one of the pets like this:</p>
|
||||
<pre><code class="language-javascript"><span class="hl-0">await</span><span class="hl-1"> </span><span class="hl-2">client</span><span class="hl-1">.</span><span class="hl-2">json</span><span class="hl-1">.</span><span class="hl-4">numIncrBy</span><span class="hl-1">(</span><span class="hl-3">'noderedis:jsondata'</span><span class="hl-1">, </span><span class="hl-3">'.pets[1].age'</span><span class="hl-1">, </span><span class="hl-5">1</span><span class="hl-1">);</span>
|
||||
</code><button>Copy</button></pre>
|
||||
<p>And we can add a new object to the pets array with the <a href="https://oss.redis.com/redisjson/commands/#jsonarrappend"><code>JSON.ARRAPPEND</code></a> command:</p>
|
||||
<pre><code class="language-javascript"><span class="hl-1"> </span><span class="hl-0">await</span><span class="hl-1"> </span><span class="hl-2">client</span><span class="hl-1">.</span><span class="hl-2">json</span><span class="hl-1">.</span><span class="hl-4">arrAppend</span><span class="hl-1">(</span><span class="hl-3">'noderedis:jsondata'</span><span class="hl-1">, </span><span class="hl-3">'.pets'</span><span class="hl-1">, {</span><br/><span class="hl-1"> </span><span class="hl-2">name:</span><span class="hl-1"> </span><span class="hl-3">'Robin'</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-2">species:</span><span class="hl-1"> </span><span class="hl-3">'bird'</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-2">age:</span><span class="hl-1"> </span><span class="hl-5">1</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-2">isMammal:</span><span class="hl-1"> </span><span class="hl-6">false</span><br/><span class="hl-1"> });</span>
|
||||
<p>And we can add a new object to the pets array with the <a href="https://redis.io/commands/json.arrappend/"><code>JSON.ARRAPPEND</code></a> command:</p>
|
||||
<pre><code class="language-javascript"><span class="hl-0">await</span><span class="hl-1"> </span><span class="hl-2">client</span><span class="hl-1">.</span><span class="hl-2">json</span><span class="hl-1">.</span><span class="hl-4">arrAppend</span><span class="hl-1">(</span><span class="hl-3">'noderedis:jsondata'</span><span class="hl-1">, </span><span class="hl-3">'.pets'</span><span class="hl-1">, {</span><br/><span class="hl-1"> </span><span class="hl-2">name:</span><span class="hl-1"> </span><span class="hl-3">'Robin'</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-2">species:</span><span class="hl-1"> </span><span class="hl-3">'bird'</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-2">age:</span><span class="hl-1"> </span><span class="hl-5">1</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-2">isMammal:</span><span class="hl-1"> </span><span class="hl-6">false</span><br/><span class="hl-1">});</span>
|
||||
</code><button>Copy</button></pre>
|
||||
</div></div>
|
||||
<div class="col-sidebar">
|
||||
|
||||
Reference in New Issue
Block a user