Skip to content
/ velo Public

A redis compatible kv store, base on slot and hash buckets.

Notifications You must be signed in to change notification settings

segment11/velo

Repository files navigation

Velo

Velo (pronunciation: /vɪloʊ/) is a redis protocol compatible, low latency, hash index based, slot sharding, multi-threading key value storage system.

Redis command support

Velo supports redis main 5 data types:

  • string
  • hash
  • list
  • set
  • zset

Details refer to https://github.com/segment11/velo/blob/main/doc/redis_command_support.md

Get started

Build

Prepare the environment:

  • JDK 21
  • Gradle 8.x
git clone https://github.com/segment11/velo.git
cd velo
gradle jar

Run

Change build/libs/velo.properties:

slotNumber=1
netWorkers=1
dir=/tmp/velo-data
net.listenAddresses=127.0.0.1:7379
estimateKeyNumber=10000000
estimateOneValueLength=200
kv.lru.maxSize=1000000
cd build/libs
java -Xmx1g -Xms1g -XX:+UseZGC -XX:+ZGenerational -XX:MaxDirectMemorySize=64m -jar velo-1.0.0.jar

Test

redis-cli -p 7379
get key
set key value

Benchmark

redis-benchmark -p 7379 -c 1 -t set -d 200 -n 10000000 -r 10000000

Performance

Details refer to https://github.com/segment11/velo/blob/main/doc/performance

Contributing

If you are interested in contributing to Velo, please refer to CONTRIBUTING.md.

License

Velo is licensed under the Apache License, Version 2.0. See LICENSE for the full license text.

Acknowledgements

Velo uses the following open source projects:

About

A redis compatible kv store, base on slot and hash buckets.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published