Redis For Javascript
Tags: node, javascript, redis, programming
Published: 2022-06-03 01:35:09

---
title: Redis For Javascript
published: true
date: 2022-06-01 20:08:27 UTC
tags: node, javascript, redis, programming
canonical_url: 
---

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3ati478l3ndz9098dstu.png)

## Introduction to Redis

Redis is an open-source, in-memory, and single-threaded database used for cache, message broker, and streaming engine. it's the most popular key-value data store. Which provides data structures such as strings, hashes, lists, sets, sorted sets, bitmaps, and more.

Redis was started in early 2009 by an Italian developer named Salvatore Sanfilippo. it is written in **C** and licensed under BSD.

## Install Redis

- Install on Ubuntu

In ubuntu, we can install Redis using the official packages.redis.io APT repository.

```
curl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg

echo "deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/redis.list

sudo apt-get update
sudo apt-get install redis

```

- Install on Mac 

In Mac, we can use the brew package manager

```
brew install redis

```

## Redis for Javascript

There are several packages in the Javascript world that will allow us to connect with Redis, To name few of the packages are :

- Node-Redis
- ioredis
- node-resque
- connect-redis

We will use Node-Redis for now. one of the benefits of the node-Redis client is that it automatically queues all commands we send before the connection is ready.

To install Node-Redis -

```
npm install redis

```

We have our Node-Redis package installed, we can import it into our project.

```
const redis = require('redis');

```

For connecting to Redis, we need a client for creating a Redis client we will use the **createClient** function from Redis, Which takes an object of Redis Host and Port

```
const client = redis.createClient(
  {
    host: process.env.REDIS_HOST,
    port: process.env.REDIS_PORT
  }
);

```

if Redis is installed on the local system, the Redis host will be **localhost** and the Redis port will be **6379**.

Now that client is created, we can connect to Redis using the **connect** function.

```
client.on('connect', () => {
  console.log('connected to redis');
});
client.on('error', (err) => {
  console.log('error: ', err);
});

client.connect();

```

Here **client.on** is used to test whether Redis is connected or not.

### Redis: Hello word

For writing this simple Hello word problem, we will use the GET and SET commands of Redis. Other [Redis commands](https://redis.io/commands/)

**SET command** - The SET command puts a key and a value in the Redis database. if a key already exists in the database, it overwrites the existing value irrespective of its type. it returns **'OK'** if the key and value are successfully added to the Redis database.

#### Redis command

```
SET mykey "Hello"

```

#### javascript code

```
client.set('name', 'vinayak').then((res) => {
  console.log('res: ', res);
}).catch((err) => {
  console.log('err: ', err);
});

```

**OUTPUT**

```
res: OK

```

**GET command** - The GET command retrieves a value based on a given key and returns nil if the key doesn't exist.

```
GET mykey

```

#### javascript code

```
client.get('name').then((reply) => {
  console.log(reply);
});

```

**OUTPUT**

```
vinayak

```

With these two commands, we will write our first javascript program

```
const redis = require('redis');
require('dotenv').config();

const client = redis.createClient(
  {
    host: process.env.REDIS_HOST,
    port: process.env.REDIS_PORT
  }
);

client.on('connect', () => {
  console.log('connected to redis');
});
client.on('error', (err) => {
  console.log('error: ', err);
});

client.connect();

client.set('name', 'vinayak').then((res) => {
  console.log('res: ', res);
}).catch((err) => {
  console.log('err: ', err);
});

client.get('name').then((reply) => {
  console.log(reply);
});
client.quit();

```

**OUTPUT**

```
connected to redis
res: OK
vinayak

```