Apache Kvrocks is a distributed key value NoSQL database that uses RocksDB as storage engine and is compatible with Redis protocol. Kvrocks intends to decrease the cost of memory and increase the capacity while compared to Redis. The design of replication and storage was inspired by rocksplicator and blackwidow.
Kvrocks has the following key features:
- Redis Compatible: Users can access Apache Kvrocks via any Redis client.
- Namespace: Similar to Redis SELECT but equipped with token per namespace.
- Replication: Async replication using binlog like MySQL.
- High Availability: Support Redis sentinel to failover when master or slave was failed.
- Cluster: Centralized management but accessible via any Redis cluster client.
You can find Kvrocks users at the Users page.
Users are encouraged to add themselves to the Users page. Either leave a comment on the "Who is using Kvrocks" issue, or directly send a pull request to add company or organization information and logo.
# Ubuntu / Debian
sudo apt update
sudo apt install -y git build-essential cmake libtool python3 libssl-dev
# CentOS / RedHat
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
# openSUSE / SUSE Linux Enterprise
sudo zypper install -y gcc11 gcc11-c++ make wget git autoconf automake python3 curl cmake
# Arch Linux
sudo pacman -Sy --noconfirm autoconf automake python3 git wget which cmake make gcc
# macOS
brew install git cmake autoconf automake libtool openssl
# please link openssl by force if it still cannot be found after installing
brew link --force opensslIt is as simple as:
$ 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.To build with TLS support, you'll need OpenSSL development libraries (e.g. libssl-dev on Debian/Ubuntu) and run:
$ ./x.py build -DENABLE_OPENSSL=ONTo build with lua instead of luaJIT, run:
$ ./x.py build -DENABLE_LUAJIT=OFFBuild with debug mode, run:
# The default build type is RelWithDebInfo and its optimization level is typically -O2.
# You can change it to -O0 in debug mode.
$ ./x.py build -DCMAKE_BUILD_TYPE=Debug$ ./build/kvrocks -c kvrocks.conf