Velo (pronunciation: /vɪloʊ/) is a redis protocol compatible, low latency, hash index based, slot sharding, multi-threading key value storage system.
Velo supports redis main data types:
- string
- hash
- list
- set
- zset
- bitmap
- hyperloglog
- bloomfilter
- geo
Details refer to https://github.com/segment11/velo/blob/main/doc/redis_command_support.md
- parquet file
- sst file [todo]
Prepare the environment:
- JDK 21
- Gradle 8.x
git clone https://github.com/segment11/velo.git
cd velo
gradle jar
Change build/libs/velo.properties:
slotNumber=1
netWorkers=1
dir=/tmp/velo-data
net.listenAddresses=127.0.0.1:7379
estimateKeyNumber=10000000
kv.lru.maxSize=1000000
cd build/libs
java -Xmx1g -Xms1g -XX:+UseZGC -XX:+ZGenerational -XX:MaxDirectMemorySize=64m -jar velo-1.0.0.jar
redis-cli -p 7379
get key
set key value
redis-benchmark -p 7379 -c 1 -t set -d 200 -n 10000000 -r 10000000
Details refer to https://github.com/segment11/velo/blob/main/doc/performance
If you are interested in contributing to Velo, please refer to CONTRIBUTING.md.
Velo is licensed under the Apache License, Version 2.0. See LICENSE for the full license text.
Velo uses the following open source projects: