1
0
Fork 0
mirror of https://github.com/dragonflydb/dragonfly.git synced 2024-12-14 11:58:02 +00:00

update readme (#794)

* Add files via upload

Signed-off-by: Nick Gottlieb <ngottlieb1@gmail.com>

* Update README.md

Signed-off-by: Nick Gottlieb <ngottlieb1@gmail.com>

* Delete logo-full.svg

Signed-off-by: Nick Gottlieb <ngottlieb1@gmail.com>

* Update README.md

Signed-off-by: Nick Gottlieb <ngottlieb1@gmail.com>

* Update README.md

Signed-off-by: Nick Gottlieb <ngottlieb1@gmail.com>

* Update README.md

Signed-off-by: Nick Gottlieb <ngottlieb1@gmail.com>

* Update README.md

Signed-off-by: Nick Gottlieb <ngottlieb1@gmail.com>

* Rename logo.svg to logo-full.svg

Signed-off-by: Nick Gottlieb <ngottlieb1@gmail.com>

* Update README.md

Signed-off-by: Nick Gottlieb <ngottlieb1@gmail.com>

* Update README.md

Signed-off-by: Nick Gottlieb <ngottlieb1@gmail.com>

---------

Signed-off-by: Nick Gottlieb <ngottlieb1@gmail.com>
This commit is contained in:
Nick Gottlieb 2023-02-14 13:08:32 -08:00 committed by GitHub
parent 81f0b5034d
commit 15c856726a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 104 additions and 78 deletions

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 15 KiB

View file

@ -8,17 +8,22 @@
[![ci-tests](https://github.com/dragonflydb/dragonfly/actions/workflows/ci.yml/badge.svg)](https://github.com/dragonflydb/dragonfly/actions/workflows/ci.yml) [![Twitter URL](https://img.shields.io/twitter/follow/dragonflydbio?style=social)](https://twitter.com/dragonflydbio)
[Quick Start](https://github.com/dragonflydb/dragonfly/tree/main/docs/quick-start) | [Discord Chat](https://discord.gg/HsPjXGVH85) | [GitHub Discussions](https://github.com/dragonflydb/dragonfly/discussions) | [GitHub Issues](https://github.com/dragonflydb/dragonfly/issues) | [Contributing](https://github.com/dragonflydb/dragonfly/blob/main/CONTRIBUTING.md)
[Website](https://dragonflydb.io/) • [Quick Start](https://github.com/dragonflydb/dragonfly/tree/main/docs/quick-start) • [Community Discord](https://discord.gg/HsPjXGVH85) • [GitHub Discussions](https://github.com/dragonflydb/dragonfly/discussions) | [GitHub Issues](https://github.com/dragonflydb/dragonfly/issues) | [Contributing](https://github.com/dragonflydb/dragonfly/blob/main/CONTRIBUTING.md)
### Probably, the fastest in-memory store in the universe!
## The world's fastest in-memory data store
Dragonfly is a modern in-memory datastore, fully compatible with Redis and Memcached APIs. Dragonfly implements novel algorithms and data structures on top of a multi-threaded, shared-nothing architecture. As a result, Dragonfly reaches x25 performance
compared to Redis and supports millions of QPS on a single instance.
Dragonfly is an in-memory data store built for modern application workloads. It is fully compatible with the Redis and Memcached APIs, required no code changes to adopt. When compared to these legacy in-memory datastores, Dragonfly delivers 25X more throughput, higher cache hit rates, with lower tail latency, and effortless vertical scalability.
Dragonfly's core properties make it a cost-effective, high-performing, and easy-to-use Redis replacement.
## Contents
- [Benchmarks](#benchmarks)
- [Quick Start](https://github.com/dragonflydb/dragonfly/tree/main/docs/quick-start)
- [Configuration](#configuration)
- [Roadmap and Status](#roadmap-status)
- [Design Decisions](#design-decisions)
- [Background](#background)
## Benchmarks
## <a name="benchmarks"><a/>Benchmarks
<img src="http://static.dragonflydb.io/repo-assets/aws-throughput.svg" width="80%" border="0"/>
@ -79,51 +84,9 @@ Meanwhile, Redis reached almost x3 memory increase at peak compared to Dragonfly
Dragonfly also finished the snapshot much faster, just a few seconds after it started.
For more info about memory efficiency in Dragonfly see [dashtable doc](/docs/dashtable.md)
## Running the server
Dragonfly runs on Linux. We advise running it on Linux version 5.11 or later
but you can also run Dragonfly on older kernels as well.
### With docker:
```bash
docker run --network=host --ulimit memlock=-1 docker.dragonflydb.io/dragonflydb/dragonfly
redis-cli PING # redis-cli can be installed with "apt install -y redis-tools"
```
*You need `--ulimit memlock=-1` because some Linux distros configure the default memlock limit for containers as 64m and Dragonfly requires more.*
### With docker-compose:
```yaml
version: "3.9"
services:
dragonfly: # the new redis
image: docker.dragonflydb.io/dragonflydb/dragonfly
ulimits:
memlock: -1
command:
- "--save_schedule=*:*" # save for every 1 minute
- "--dir=/data"
- "--dbfilename=dump.rdb"
ports:
- '6379:6379'
volumes:
- "./dragonfly_data:/data"
restart: unless-stopped
```
### Releases
We maintain [binary releases](https://github.com/dragonflydb/dragonfly/releases) for x86 and arm64 architectures. You will need to install `libunwind8` lib to run the binaries.
### Building from source
See [building from source](./docs/build-from-source.md) for details.
## Configuration
## <a name="configuration"><a/>Configuration
Dragonfly supports common Redis arguments where applicable.
For example, you can run: `dragonfly --requirepass=foo --bind localhost`.
@ -157,7 +120,7 @@ In addition, it has Dragonfly specific arguments options:
for more options like logs management or tls support, run `dragonfly --help`.
## Roadmap and status
## <a name="roadmap-status"><a/>Roadmap and status
Currently, Dragonfly supports ~185 Redis commands and all memcache commands besides `cas`.
We are almost on par with Redis 5 API. Our next milestone will be to stabilize basic
@ -171,7 +134,7 @@ APIs 3-6.
Please see [API readiness doc](docs/api_status.md) for the current status of Dragonfly.
## Design decisions
## <a name="design-decisions"><a/> Design decisions
### Novel cache design
Dragonfly has a single unified adaptive caching algorithm that is very simple and memory efficient.
@ -204,7 +167,7 @@ If you expose Dragonfly's TCP port externally, it is advised to disable the cons
with `--http_admin_console=false` or `--nohttp_admin_console`.
## Background
## <a name="background"><a/>Background
Dragonfly started as an experiment to see how an in-memory datastore could look like if it was designed in 2022. Based on lessons learned from our experience as users of memory stores and as engineers who worked for cloud companies, we knew that we need to preserve two key properties for Dragonfly: a) to provide atomicity guarantees for all its operations, and b) to guarantee low, sub-millisecond latency over very high throughput.