Skip to content

🚀 Register once and use Redis anywhere in your Hapi application/route handlers.

Notifications You must be signed in to change notification settings

dwyl/hapi-redis-connection

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

hapi-redis-connection

Build Status codecov Code Climate dependencies Status devDependencies Status

dilbert_in-memory

Why?

Redis is a great place to store data you need fast access to in your Hapi app. If you have many route handlers in separate files it can be tedious to require() (or import if you prefer) the redis module and establish a connection in each one ... so we created a tiny Plugin that gives you access to Redis in all your routes.

What?

A simple hapi module which makes a connection to your Redis store available anywhere in your Hapi server.

How?

1. Download/Install

Install the plugin/package from NPM:

npm install hapi-redis-connection --save

2. Intialise the plugin in your Hapi Server

server.register({ // register all your plugins
  register: require('hapi-redis-connection') // no options required
}, function (err) {
  if (err) {
    // handle plugin startup error
  }
});

3. Use hapi-redis-connection in your Route Handler

server.route({
  method: 'GET',
  path: '/',
  handler: function(request, reply) {
    request.redis.get('homepage', function(err, result) {
      console.log(err, result);
      return reply(result);
    });
  }
});

If you want more usage examples, ask! 😉

Environment Variable

If you want to use a Redis server from a 3rd Party Provider, e.g: Redis Cloud you will need to export an environment variable with the URL of the server e.g:

export REDISCLOUD_URL=redis://rediscloud:password@redis-server.com

If you do not set a REDISCLOUD_URL the plugin will attempt to connect to redis on your localhost.

Other Redis Providers?

At present we are using Redis Cloud for our Hapi apps because they have a great service at an affordable price.

If you are planning on using another provider e.g. AWS ElastiCache (Redis), please let us know! https://github.com/dwyl/redis-connection/issues

Implementation Notes

This package uses: redis-connection which in turn exposes node_redis (feature complete & high performance Redis client)

Connecting to Redis Cloud is tested in: https://git.io/v6vTf

About

🚀 Register once and use Redis anywhere in your Hapi application/route handlers.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published