Getting started with Redis and node_redis

Getting started with Redis and node_redis

Redis For Javascript | part 1

ยท

3 min read

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

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

Did you find this article valuable?

Support Vinayak's Blog by becoming a sponsor. Any amount is appreciated!

ย