# Redis JSON

Redis Stack extends the core features of Redis OSS and provides a complete developer experience for debugging and more.

RedisJSON

RedisGraph

RedisTimeseries

RedisSearch

The JSON capability of Redis Stack provides JavaScript Object Notation (JSON) support for Redis. It lets you store, update, and retrieve JSON values in a Redis database, similar to any other Redis data type.

```
JSON.SET friends:character:rachel $ '{"name": "Rachel Green", "occupation": "Fashion Executive", "relationship_status": "Single", "friends": ["Ross Geller", "Monica Geller", "Joey Tribbiani", "Chandler Bing", "Phoebe Buffay"] }'

```

Dollar sign ($) represents the Root node

```
JSON.GET friends:character:rachel
```

Retrieve Specific fields

```
JSON.GET friends:character:rachel $.name $.occupation
```

Adds education at the end

```
JSON.SET friends:character:rachel $.education '
{"high_school": "Lincoln High School", "college": "Not specified" }'
```

```
JSON.GET friends:character:rachel
```

Adding Array of values

```
JSON.SET friends:character:rachel $.employment_history '[ { "company": "Central Perk", "position": "Waitress", "years": "1994-1995" }, { "company": "Bloomingdale\'s", "position": "Assistant Buyer", "years": "1996-1999" }, { "company": "Ralph Lauren", "position": "Executive", "years": "1999-2004" } ]'
```

**Get Employment History**&#x20;

```
json.get friends:character:rachel employment_history
```

```
JSON.GET friends:character:rachel $.employment_history[*].company
```

**Get specific one**

```
json.get friends:character:rachel employment_history[1]
```

**Scan All Keys**

```
SCAN 0 MATCH friends:character:*
```

**Add more data**

```
JSON.SET friends:character:ross $ '{
  "name": "Ross Geller",
  "occupation": "Paleontologist",
  "relationship_status": "Divorced",
  "friends": ["Rachel Green", "Monica Geller", "Joey Tribbiani", "Chandler Bing", "Phoebe Buffay"],
  "children": [
    {
      "name": "Ben Geller",
      "mother": "Carol Willick"
    },
    {
      "name": "Emma Geller-Green",
      "mother": "Rachel Green"
    }
  ],
  "education": {
    "college": "Columbia University",
    "degree": "Ph.D. in Paleontology"
  }}'

```

```
JSON.SET friends:character:monica $ '{
  "name": "Monica Geller",
  "occupation": "Chef",
  "relationship_status": "Married",
  "friends": ["Ross Geller", "Rachel Green", "Joey Tribbiani", "Chandler Bing", "Phoebe Buffay"],
  "spouse": "Chandler Bing",
  "education": {
    "culinary_school": "Not specified"
  },
  "employment_history": [
    {
      "company": "Alessandro\'s",
      "position": "Head Chef",
      "years": "Not specified"
    },
    {
      "company": "Javu",
      "position": "Chef",
      "years": "Not specified"
    }
  ]}'
```

```
JSON.GET friends:character:ross $.name $.occupation
```

```
JSON.SET friends:character:chandler $ '{
  "name": "Chandler Bing",
  "occupation": "Statistical analysis and data reconfiguration",
  "relationship_status": "Married",
  "friends": ["Ross Geller", "Monica Geller", "Joey Tribbiani", "Rachel Green", "Phoebe Buffay"],
  "spouse": "Monica Geller",
  "education": {
    "college": "Not specified"
  }}'
```

```
JSON.SET friends:character:phoebe $ '{
  "name": "Phoebe Buffay",
  "occupation": "Masseuse and Musician",
  "relationship_status": "Married",
  "friends": ["Ross Geller", "Monica Geller", "Joey Tribbiani", "Chandler Bing", "Rachel Green"],
  "spouse": "Mike Hannigan",
  "education": {
    "high_school": "Not completed"
  }}'
```

```
JSON.SET friends:character:joey $ '{
  "name": "Joey Tribbiani",
  "occupation": "Actor",
  "relationship_status": "Single",
  "friends": ["Ross Geller", "Monica Geller", "Chandler Bing", "Rachel Green", "Phoebe Buffay"],
  "education": {
    "drama_school": "Not specified"
  },
  "employment_history": [
    {
      "show": "Days of Our Lives",
      "role": "Dr. Drake Ramoray",
      "years": "Various"
    }
  ]}'
```

Delete specific node

```
JSON.DEL friends:character:monica $.occupation

```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://gchandra.gitbook.io/big-data-and-tools-with-nosql/nosql/redis/redis-json.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
