commit | c15bd88718aa180c1f7f238f864816f7d4fd2c5d | [log] [tgz] |
---|---|---|
author | mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> | Tue Jul 20 18:50:41 2021 +0800 |
committer | GitHub <noreply@github.com> | Tue Jul 20 18:50:41 2021 +0800 |
tree | 7c5cb36cb5ee0cdbde442d44be9c5860ac8e6cf2 | |
parent | ad4e288189555d2a06158d16345a41d63bd590f5 [diff] |
Fix the SUBSCRIBE command can't the update last interaction time (#335) (#336) Act like Redis, SUBSCRIBE must update the last interaction time while a publish message received, otherwise, this channel may be closed for timeout reasons by default. (cherry picked from commit 9a0bc144e86a681fef137d94ac6d3aaa030a58bc) Co-authored-by: BradLee <entropylee@gmail.com>
kvrocks is an open-source key-value database. which is based on rocksdb and compatible with Redis protocol. Intention to decrease the cost of memory and increase the capability while compared to Redis. The design of replication and storage was inspired by rocksplicator
and blackwidow
.
kvrocks has the following key features:
Thanks for @smartlee and the trip.com designer(@范世丽) contributes the kvrocks logo for us
Tickets a pull reqeust to let us known that you're using kvrocks and add your logo to README
NOTE: You should install the snappy first:
# Centos/Redhat sudo yum install -y epel-release && sudo yum install -y git gcc gcc-c++ make snappy snappy-devel autoconf automake libtool which gtest gtest-devel # Ubuntu sudo apt-get install gcc g++ make libsnappy-dev autoconf automake libtool which libgtest-dev # MACOSX brew install snappy googletest
It is as simple as:
$ git clone --recursive https://github.com/bitleak/kvrocks.git $ cd kvrocks $ make -j4
$ ./src/kvrocks -c kvrocks.conf
NOTE: You should install the googletest first
make test
$ docker run -it -p 6666:6666 bitleak/kvrocks $ redis-cli -p 6666 127.0.0.1:6666> get a (nil)
namespace was used to isolate data between users. unlike all the redis databases can be visited by requirepass
, we use one token per namespace. requirepass
was regraded as admin token, only admin token allows to access the namespace command, as well as some commands like config
, slaveof
, bgave
, etc…
# add token 127.0.0.1:6666> namespace add ns1 mytoken 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
kvrocks2redis
in build dirBenchmark Client: multi-thread redis-benchmark(unstable branch)
kvorkcs: workers = 16, benchmark: 8 threads/ 512 conns / 128 payload
latency: 99.9% < 10ms
kvorkcs: workers = 16, benchmark: 8 threads/ 512 conns
latency: 99.9% < 10ms
kvorkcs: workers = 16, benchmark: 8 threads/ 512 conns / 128 payload
latency: 99.9% < 10ms
kvrocks is under the BSD-3-Clause license. See the LICENSE file for details.