/skyhook

Skyhook is a Redis API compatible gateway to Aerospike Database

Primary LanguageKotlinApache License 2.0Apache-2.0

Skyhook

Build

Skyhook is a Redis API-compatible gateway to the Aerospike Database. Use Skyhook to quickly get your Redis client applications up and running on an Aerospike cluster.

Overview

Skyhook is designed as a standalone server application written in Kotlin, which accepts Redis protocol commands and projects them to an Aerospike cluster using the Aerospike Java client under the hood. It uses Netty as a non-blocking I/O client-server framework.

This project is now in beta. If you're an enterprise customer feel free to reach out to our support with feedback and feature requests. We appreciate feedback from the Aerospike community on issues related to Skyhook.

Documentation

For full documentation please visit the GitHub Pages site.

Installation

Prerequisites

  • Java 8 or later
  • Aerospike Server version 4.9+

Installing

Skyhook is distributed as a jar file which may be downloaded from https://github.com/aerospike/skyhook/releases/latest.

Running

Usage:

% java -jar skyhook-[version]-all.jar -h

Usage: skyhook [-h] [-f=<configFile>]
Redis to Aerospike proxy server
  -f, --config-file=<configFile>
               yaml formatted configuration file
  -h, --help   display this help and exit

To run the server:

java -jar skyhook-[version]-all.jar -f config/skyhook.yml

The configuration file carries all the settings the server needs and is in YAML format. An example configuration file can be found in the config folder of this repository. If no configuration file is specified, the default settings will be applied.

[main] INFO  c.a.skyhook.SkyhookServer$Companion - Starting the Server...

Now the server is listening to the config.redisPort (default: 6379) and is ready to serve.

If you wish to deploy Skyhook as a cluster of nodes, you can find some example configurations here.

Linux RPM and DEB packages are also available under the release assets. Check your system information to pick a suitable installation package.

Configuration Properties

The default behavior may be customized by setting the following properties in the configuration file:

Property name Description Default value
hostList The host list to seed the Aerospike cluster. localhost:3000
namespace The Aerospike namespace. test
set The Aerospike set name. redis
clientPolicy The Aerospike Java client ClientPolicy configuration properties. ClientPolicyConfig
bin The Aerospike value bin name. b
typeBin The Aerospike value type bin name. t
redisPort The server port to bind to. 6379
unixSocket The server will bind on unix socket if configured.
workerThreads1 The Netty worker group size. number of available cores
bossThreads The Netty acceptor group size. 2

1 Used to configure the size of the Aerospike Java Client EventLoops as well.

License

Licensed under an Apache 2.0 License.

This is an active open source project. You can contribute to it by trying Skyhook, providing feedback, reporting bugs, and implementing more Redis commands.