KeyDB Enterprise provides performance enhancements and features not available in KeyDB Open Source.
1.9K

If you are a new user, please reach out to [email protected] to get set up for testing/support/use
If you are an existing customer please reach out to [email protected], or get in touch for other communications options such as slack or our support portal.
x86_64_vx.x.x is the x86 Ubuntu18.04 build based off the stated version releasearm64_vx.x.x is the Arm Ubuntu18.04 build based off the stated version releaselatest tag is a manifest and will pull either the ubuntu18.04 x86_64_vx.x.x or the ubuntu18.04 arm64_vx.x.x imageKeyDB Enterprise is a powerful superset of functionality & performance to the open source KeyDB project. KeyDB Enterprise is meant for the most demanding workloads and provides performance improvements over the already fast KeyDB Open Source. Enterprise has an underlying MVCC architecture which allows it to extract more parallelism by querying snapshots. This enables calls such as KEYS and SCAN to become non-blocking calls. It also allows things like forkless background saving.
KeyDB Enterpise offers FLASH storage options for large datasets lowering hardware TCO while enabling you to keep hot data in memory. This option also persists eliminating the need for AOF/RDB saving. Check out the documentation and website for more details.
KeyDB Enterprise maintains full compatibility with the Redis protocol, modules, and scripts. This includes the atomicity guarantees 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.
On the same hardware KeyDB can achieve significantly higher throughput than Redis. 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.
The chart below compares several KeyDB and Redis setups, including the latest Redis6 io-threads option, and TLS benchmarks.
See the full benchmark results and setup information here: https://docs.keydb.dev/blog/2020/09/29/blog-post/
If you need a brushup on any of the docker commands you can check out dockers documentation here
docker run -name some-keydb -d eqalpha/keydb-enterprise keydb-server /etc/keydb/keydb.conf --server-threads 8 --requirepass password --enable-enterprise LKXX-XXXX-XXXX-XXXX-XXXX
Make sure you specify the program you are running (keydb-server) for which to modify the parameters for. Next specify the config parameter you would like to modify when starting the container with --parameter-name value.
You can see the full set of configuration options here
From above, --name specifies a name for the container, its not needed but makes it easier to identify. The -d option is 'detached' or runs in the background.
If you want to bind the container to the node/machine so it is accessible externally pass the parameter -p 6379:6379
$ docker run -v /path-to-config-file/keydb.conf:/etc/keydb/keydb.conf --name mykeydb -d eqalpha/keydb-enterprise
If you are using your own config file remember to comment out "bind 127.0.0.1", change "protected-mode" from yes to no.
you can grab a copy of the default config file off our github page and modify as you see fit.
As requested by users for Redis compatibility, we have included symbolic links for both redis-cli and redis.conf so they are linked to keydb-cli and keydb.conf respectively.
sudo docker run -d -it --name mycontainername --mount type=bind,dst=/flash,src=/path/to/flash/ eqalpha/keydb-enterprise keydb-server /etc/keydb/keydb.conf --enable-enterprise LKXX-XXXX-XXXX-XXXX-XXXX --storage-provider flash /flash --maxmemory [maxmemory-amount-ie. 2G] --eviction-policy [eviction-policy ie. allkeys-lru]
You need to mount your flash storage volume (ssd/flash) to the docker container so it has a place to write its data. src=/path/to/flash references the location you have set up. Specify -it' to enable the container to communicate with it. The docker container already has a directory inside it named /flashwhich we will use internally as a reference.--storage-provider [storage-type] [storage-location] is used to specify the storage type and location. For this docker container it will always be --storage-provider flash /flash.
To see more about FLASH sizing check out docs
The FLASH storage provider is always persistent. There is no requirement to save or load RDB files if FLASH is used. You may disable periodic RDB saving by adding: save "" to your configuration file. On boot KeyDB will load any existing data in your FLASH database.
$ docker run --name some-app --link some-keydb:eqalpha/keydb-enterprise -d application-that-uses-keydb
you can grab the ip of the container with docker inspect --format '{{ .NetworkSettings.IPAddress }}' mycontainername then run the following:
docker run -it --rm eqalpha/keydb-enterprise keydb-cli -h [ipaddress-from-above] -p 6379
alternatively you can link to it
$ docker run -it --link some-keydb:eqalpha/keydb-enterprise --rm eqalpha/keydb-enterprise keydb-cli -h keydb -p 6379
server-threads N
server-thread-affinity [true/false]
scratch-file-path /tmp/
multi-master yes
active-replica yes
enable-enterprise [license-key]
storage-provider flash /path/to/storage/volumes/
To keep up to date with KeyDB including product, feature & release updates, be sure to follow us on one of our channels below:
Content type
Image
Digest
Size
74.6 MB
Last updated
almost 5 years ago
docker pull eqalpha/keydb-enterprise