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.
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.
For full documentation please visit the GitHub Pages site.
- Java 8 or later
- Aerospike Server version 4.9+
Skyhook is distributed as a jar file which may be downloaded from https://github.com/aerospike/skyhook/releases/latest.
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.
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.
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.