| commit | 2cf4e16b098ea24a1e848245f8fd675b21d08b4d | [log] [tgz] |
|---|---|---|
| author | git-hulk <hulk.website@gmail.com> | Wed Jul 27 14:42:23 2022 +0800 |
| committer | git-hulk <hulk.website@gmail.com> | Wed Jul 27 14:42:23 2022 +0800 |
| tree | 58ddb8a30e9b3eb3540e124694796860d0716cae | |
| parent | 58fbe744a9c5f5c93228eadc7fcbd251a5b4b173 [diff] |
[source-release] prepare release apache-kvrocks-2.1.0
Apache Kvrocks(Incubating) 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:
Thanks for designers @田凌宇 and @范世丽 contribute the kvrocks logo for us.
Tickets a pull request to let us known that you're using kvrocks and add your logo to README
# CentOS / RedHat sudo yum install -y epel-release sudo yum install -y git gcc gcc-c++ make cmake autoconf automake libtool which # Ubuntu / Debian sudo apt update sudo apt install -y gcc g++ make cmake autoconf automake libtool # macOS brew install autoconf automake libtool cmake
It is as simple as:
$ git clone https://github.com/apache/incubator-kvrocks.git $ cd incubator-kvrocks $ ./x.py build # `./x.py build -h` to check more options; # especially, `./x.py build --ghproxy` will fetch dependencies via ghproxy.com.
$ ./build/kvrocks -c kvrocks.conf
$ docker run -it -p 6666:6666 kvrocks/kvrocks
$ redis-cli -p 6666 127.0.0.1:6666> get a (nil)
$ ./build.sh build --unittest $ cd build $ ./unittest
Namespace is used to isolate data between users. Unlike all the Redis databases can be visited by requirepass, we use one token per namespace. requirepass is regraded as admin token, and only admin token allows to access the namespace command, as well as some commands like config, slaveof, bgsave, etc..
# add token 127.0.0.1:6666> namespace add ns1 my_token OK # update token 127.0.0.1:6666> namespace set ns1 new_token OK # list namespace 127.0.0.1:6666> namespace get * 1) "ns1" 2) "new_token" 3) "__namespace" 4) "foobared" # delete namespace 127.0.0.1:6666> namespace del ns1 OK
Kvrocks implements a proxyless centralized cluster solution but its accessing method is completely compatible with the Redis cluster client. You can use Redis cluster SDKs to access the kvrocks cluster. More details, please see: Kvrocks Cluster Introduction
Documents are hosted at the official website.
kvrocks2redis in build dirBenchmark Client: multi-thread redis-benchmark(unstable branch)
kvrocks: workers = 16, benchmark: 8 threads/ 512 conns / 128 payload
latency: 99.9% < 10ms
kvrocks: workers = 16, benchmark: 8 threads/ 512 conns
latency: 99.9% < 10ms
kvrocks: workers = 16, benchmark: 8 threads/ 512 conns / 128 payload
latency: 99.9% < 10ms
Kvrocks is under the Apache License Version 2.0. See the LICENSE file for details.