1.0.3 • Published 3 years ago

redis-ssh2 v1.0.3

Weekly downloads
3
License
MIT
Repository
github
Last release
3 years ago

Redis-SSH2

This project is based on 【Node.js】SSH経由でRedisへ接続する Sets up a Redis connection inside an SSH tunnel. This is practical when you want to reach a Redis which is only accessible through a webserver. Even if the Redis server is not located on the webserver itself. It avoids denied from Redis when we use localhost.

Greenkeeper badge

API

.connect(obj sshConfig, obj dbConfig)

  • sshConfig should be an object according to the ssh2 package.
  • dbConfig should be an object according to the Redis2 package.
  • Returns a Promise, containing a connection from the Redis2 package.

Usage

Don't forget to .close() the tunnel connection when you're done querying the database.

const Redis = require('redis-ssh2');
const fs = require('fs');

Redis.connect(
    {
        host: 'my-ssh-server.org',
        user: 'me-ssh',
        privateKey: fs.readFileSync(process.env.HOME + '/.ssh/id_rsa')
    },
    {
        host: 'my-db-host.com',
        port: 'me-port',
        password: 'secret',
        db: 'my-db-name'
    }
)
.then(client => {
    client.get('values', (err, reply) => {
        if (err) throw err
        console.log(results);
        Redis.close()
    })
})
.catch(err => {
    console.log(err)
})

If you use password in tunnl,you can use it.

const Redis = require('redis-ssh2');
const fs = require('fs');

Redis.connect(
    {
        host: 'my-ssh-server.org',
        user: 'me-ssh',
        password: ''
    },
    {
        host: 'my-db-host.com',
        port: 'me-port',
        password: 'secret',
        db: 'my-db-name'
    }
)
.then(client => {
    client.get('SELECT * FROM `users`', (err, reply) => {
        if (err) throw err
        console.log(results);
        Redis.close()
    })
})
.catch(err => {
    console.log(err)
})