Skip to main content

Getting started

You can either get started with Apache Kvrocks™ with Docker or compile a binary from source.

Run Kvrocks with Docker

  1. Follow Docker's installation instructions to install Docker.
  2. Pull the latest image and start a container:
docker run -it -p 6666:6666 apache/kvrocks --bind 0.0.0.0

Now you can use the redis-cli to run the kvrocks server as Redis on port 6666:

redis-cli -p 6666

For persisted data, prefer using a docker volume over a bind-mounted volume to avoid file permission or performance problems. Eg:

# create docker volume once, eg:
docker volume create kvrocks_data

docker run --volume kvrocks_data:/kvrocks_data \
--interactive --tty --publish 6666:6666 apache/kvrocks --bind 0.0.0.0 --dir /kvrocks_data

# note: the default data dir is /var/lib/kvrocks. The above example changes the location from default to /kvrocks_data.

Tuning Docker

Any command line switches in the the Docker CMD position are passed to the kvrocks app. For example, to change the "workers" setting from default to 16, you could include --workers 16

docker run -it --rm -p 6666:6666 apache/kvrocks --bind 0.0.0.0 --workers 16

To set an admin password, use the requirepass directive:

# assuming password exported on environment variable "KVROCKS_ADMIN_SECRET":
docker run -it --rm -p 6666:6666 apache/kvrocks --bind 0.0.0.0 --requirepass $KVROCKS_ADMIN_SECRET

# redis-cli on host looks like:
REDISCLI_AUTH=$KVROCKS_ADMIN_SECRET redis-cli -p 6666 ping

Alternatively, you might mount the entire kvrocks.conf file to the container. The default config location is /var/lib/kvrocks/kvrocks.conf. NOTE: if bind-mounting, it must be an entire directory (and so would look like ./my_conf_dir:/var/lib/kvrocks.) To change the config file location, override the Docker entrypoint. (See Dockerfile as a guideline.)

Build and run Kvrocks from source

Install dependencies

sudo yum install -y centos-release-scl-rh
sudo yum install -y git devtoolset-11 autoconf automake libtool libstdc++-static python3 openssl-devel
# download and install cmake via https://cmake.org/download
wget https://github.com/Kitware/CMake/releases/download/v3.26.4/cmake-3.26.4-linux-x86_64.sh -O cmake.sh
sudo bash cmake.sh --skip-license --prefix=/usr
# enable gcc and make in devtoolset-11
source /opt/rh/devtoolset-11/enable

Compile Kvrocks from source

git clone https://github.com/apache/kvrocks.git
cd kvrocks
./x.py build # `./x.py build -h` to check more options;
# especially, `./x.py build --ghproxy` will fetch dependencies via ghproxy.com.

The binary file kvrocks will be generated at build dir if everything goes well.

Run the Kvrocks server by:

./build/kvrocks -c kvrocks.conf

Now you can use the redis-cli to run the kvrocks server as Redis on port 6666:

redis-cli -p 6666