You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* update readme
* KeyDB must acknowledge its Redis origin and that while we have different opinions we are greatful to Antirez and Redis for the work they've done in this space.
* Update README.md
Copy file name to clipboardExpand all lines: README.md
+42-32Lines changed: 42 additions & 32 deletions
Original file line number
Diff line number
Diff line change
@@ -2,40 +2,47 @@
2
2
[](https://travis-ci.org/JohnSully/KeyDB)[](https://gitter.im/KeyDB/community?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
##### Need Help? Check out our extensive [documentation](https://docs.keydb.dev).
6
+
5
7
What is KeyDB?
6
8
--------------
7
9
8
-
KeyDB is a high performance fork of Redis focusing on multithreading, memory efficiency, and high throughput. In addition to multithreading KeyDB also has features only available in Redis Enterprise such as [Active Replication](https://github.com/JohnSully/KeyDB/wiki/Active-Replication), [FLASH storage](https://github.com/JohnSully/KeyDB/wiki/FLASH-Storage) support, and some not available at all such as direct backup to AWS S3.
10
+
KeyDB is a high performance fork of Redis with a focus on multithreading, memory efficiency, and high throughput. In addition to multithreading, KeyDB also has features only available in Redis Enterprise such as [Active Replication](https://github.com/JohnSully/KeyDB/wiki/Active-Replication), [FLASH storage](https://github.com/JohnSully/KeyDB/wiki/FLASH-Storage) support, and some not available at all such as direct backup to AWS S3.
11
+
12
+
KeyDB maintains full compatibility with the Redis protocol, modules, and scripts. This includes the atomicity gurantees for scripts and transactions. Because KeyDB keeps in sync with Redis development KeyDB is a superset of Redis functionality, making KeyDB a drop in replacement for existing Redis deployments.
13
+
14
+
On the same hardware KeyDB can perform twice as many queries per second as Redis, with 60% lower latency. Active-Replication simplifies hot-spare failover allowing you to easily distribute writes over replicas and use simple TCP based load balancing/failover. KeyDB's higher performance allows you to do more on less hardware which reduces operation costs and complexity.
KeyDB has a different philosophy on how the codebase should evolve. We feel that ease of use, high performance, and a "batteries included" approach is the best way to create a good user experience. While we have great respect for the Redis maintainers it is our opinion that the Redis approach focusses too much on simplicity of the code base at the expense of complexity for the user. This results in the need for external components and workarounds to solve common problems - resulting in more complexity overall.
9
22
10
-
On the same hardware KeyDB can perform twice as many queries per second as Redis, with 60% lower latency.
23
+
Because of this difference of opinion features which are right for KeyDB may not be appropriate for Redis. A fork allows us to explore this new development path and implement features which may never be a part of Redis. KeyDB keeps in sync with upstream Redis changes, and where applicable we upstream bug fixes and changes. It is our hope that the two projects can continue to grow and learn from each other.
11
24
12
-
KeyDB has full compatibility with the Redis protocol, modules, and scripts. This includes full support for transactions, and atomic execution of scripts. For more information see our architecture section below.
[Subscribe to the KeyDB mailing list](https://eqalpha.us20.list-manage.com/subscribe/post?u=978f486c2f95589b24591a9cc&id=4ab9220500)
19
-
20
-
Management GUI: We recommend [FastoNoSQL](https://fastonosql.com/) which has official KeyDB support.
32
+
Visit our Website: https://keydb.dev
21
33
22
-
New: Active Replica Support
23
-
---------------------------
34
+
See options for channel partners and support contracts: https://keydb.dev/support.html
24
35
25
-
New! KeyDB now has support for Active Replicas. This feature greatly simplifies hot-spare failover and allows you to distribute writes over replicas instead of just a single master. For more information [see the wiki page](https://github.com/JohnSully/KeyDB/wiki/Active-Replication).
36
+
Learn with KeyDB’s official documentation site: https://docs.keydb.dev
26
37
27
-
Why fork Redis?
28
-
---------------
38
+
[Subscribe to the KeyDB mailing list](https://eqalpha.us20.list-manage.com/subscribe/post?u=978f486c2f95589b24591a9cc&id=4ab9220500)
29
39
30
-
The Redis maintainers have continually reiterated that they do not plan to support multithreading. While we have great respect for the redis team, we feel the analysis justifying this decision is incorrect. In addition we wanted open source implementations of features currently only available in proprietary modules. We feel a fork is the best way to accelerate development in the areas of most interest to us.
40
+
Management GUI: We recommend [FastoNoSQL](https://fastonosql.com/) which has official KeyDB support.
31
41
32
-
We plan to track the Redis repo closely and hope our projects can learn from each other.
Please note keydb-benchmark and redis-benchmark are currently single threaded and too slow to properly benchmark KeyDB. We recommend using a redis cluster benchmark tool such as [memtier](https://github.com/RedisLabs/memtier_benchmark). Please ensure your machine has enough cores for both KeyDB and memteir if testing locally. KeyDB expects exclusive use of any cores assigned to it.
40
47
41
48
For more details on how we benchmarked KeyDB along with performance numbers check out our blog post: [Redis Should Be Multithreaded](https://medium.com/@john_63123/redis-should-be-multi-threaded-e28319cab744?source=friends_link&sk=7ce8e9fe3ec8224a4d27ef075d085457)
@@ -58,6 +65,10 @@ If you would like to use the [FLASH backed](https://github.com/JohnSully/KeyDB/w
58
65
59
66
If you would like KeyDB to dump and load directly to AWS S3 this option specifies the bucket. Using this option with the traditional RDB options will result in KeyDB backing up twice to both locations. If both are specified KeyDB will first attempt to load from the local dump file and if that fails load from S3. This requires the AWS CLI tools to be installed and configured which are used under the hood to transfer the data.
60
67
68
+
active-replica yes
69
+
70
+
If you are using active-active replication set `active-replica` option to “yes”. This will enable both instances to accept reads and writes while remaining synced. [Click here](https://docs.keydb.dev/docs/active-rep/) to see more on active-rep in our docs section. There are also [docker examples](https://docs.keydb.dev/docs/docker-active-rep/) on docs.
71
+
61
72
All other configuration options behave as you'd expect. Your existing configuration files should continue to work unchanged.
62
73
63
74
Building KeyDB
@@ -67,16 +78,19 @@ KeyDB can be compiled and is tested for use on Linux. KeyDB currently relies on
docker run -it --rm -v `pwd`/KeyDB:/build -w /build devopsdood/keydb-builder make
242
+
$ docker run -it --rm -v /path-to-dump-binaries:/keydb_bin eqalpha/keydb-build-bin
231
243
```
244
+
You should receive the following files: keydb-benchmark, keydb-check-aof, keydb-check-rdb, keydb-cli, keydb-sentinel, keydb-server
232
245
233
-
Then you have fresh binaries built, you can also pass any other options to the make command above after the word make. E.g.
234
-
235
-
```docker run -it --rm -v `pwd`/KeyDB:/build -w /build devopsdood/keydb-builder make MAllOC=memkind```
236
-
237
-
The above commands will build you binaries in the src directory. Standard `make install` without Docker command will work after if you wish to install
238
-
239
-
If you'd prefer you can build the Dockerfile in the repo instead of pulling the above container for use:
240
-
241
-
`docker build -t KeyDB .`
246
+
If you are looking to enable flash support with the build (make MALLOC=memkind) then use the following command:
247
+
```
248
+
$ docker run -it --rm -v /path-to-dump-binaries:/keydb_bin eqalpha/keydb-build-bin:flash
249
+
```
250
+
Please note that you will need libcurl4-openssl-dev in order to run keydb. With flash version you may need libnuma-dev and libtool installed in order to run the binaries. Keep this in mind especially when running in a container. For a copy of all our Dockerfiles, please see them on [docs](https://docs.keydb.dev/docs/dockerfiles/).
242
251
243
252
Code contributions
244
253
-----------------
@@ -252,3 +261,4 @@ source distribution.
252
261
Please see the CONTRIBUTING file in this source distribution for more
0 commit comments