https://github.com/3kuai/hanbo-db
hanboDB is a high available,low latency memory database system
https://github.com/3kuai/hanbo-db
java message-queue netty4 pubsub redis-server
Last synced: 17 days ago
JSON representation
hanboDB is a high available,low latency memory database system
- Host: GitHub
- URL: https://github.com/3kuai/hanbo-db
- Owner: 3kuai
- License: apache-2.0
- Archived: true
- Created: 2017-07-06T07:21:18.000Z (almost 9 years ago)
- Default Branch: master
- Last Pushed: 2023-04-04T01:46:43.000Z (about 3 years ago)
- Last Synced: 2025-04-17T03:31:01.103Z (about 1 year ago)
- Topics: java, message-queue, netty4, pubsub, redis-server
- Language: Java
- Homepage:
- Size: 411 KB
- Stars: 37
- Watchers: 6
- Forks: 22
- Open Issues: 0
-
Metadata Files:
- Readme: README-cn.md
- License: LICENSE
Awesome Lists containing this project
- awesome-java - HanboDB
README
# HanboDB
hanboDB是一个高性能低延迟的内存数据库,源码:https://github.com/3kuai/jredis
## 特征
支持数据动态扩容
支持所有redis原生协议
1.set get
2.lpush rpush lrange blpop brpop llen
3.hset hget hgetall hscan
4.pub sub
5.select keys scan expire del
6.multi exec discard
7.incr incrby
8.slaveof
....
## 客户端
兼容jedis,spring-data-redis
redis桌面版0.9+
## 架构
使用fastUtil库(Object2List、Object2Map),具有非常好的读/写能力
仅key占用JVM堆内存空间,value使用堆外内存(内存文件映射)



### 线性存储
1.头四个字节(存储offset)存放buffer最后的写入位置,后续的单元(数据内容)格式为TLV格式(flag+length+valueBytes)
2.k/v数据独立存储
3.超过阀值会自动扩容为原始空间的2倍大小
### 构建
cd jredis && mvn clean install -Dmaven.test.skip=true
### 运行
java -jar jredis-{version}.jar
### 高可用配置
支持一主多从,不过仅支持手动切换主从关系,计划未来实现哨兵机制
#### 主节点
自动发现从节点
replication.mode=master
#### 从节点
主动注册从节点
replication.mode=slave
slaver.of=127.0.0.1:16379