# KBox
**Repository Path**: foolish-student/KBox
## Basic Information
- **Project Name**: KBox
- **Description**: 轻量级key-value存储服务,支持多种数据结构
- **Primary Language**: C++
- **License**: AGPL-3.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2025-02-09
- **Last Updated**: 2025-02-27
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# KBox
#### 介绍
基于网络IO实现的轻量级存储程序。
支持array、rbtree、hash三种数据类型。
支持多种语言,Java、GO、C++都可以进行连接使用
#### 测试性能
array: 60W次访问耗时56.425秒,qps10633
rbtree: 60w次访问耗时56.356秒,qps10714
hash: 60w次访问耗时55.424秒, qps10825
#### 软件架构

ntyco:开源库
rbtree:开源代码
hash: 开源代码
#### 安装教程
```bash
# 1. 下载安装ntyco https://github.com/wangbojing/NtyCo
# 2. 编译kbox
cmake ..
make
# 3. 运行使用
```
#### 使用说明
1. Array操作:
* GET KEY
* SET KEY VALUE
* DEL KEY
* MOD KYE VALUE
* COUNT KEY
2. RBtree操作:
* RGET KEY
* RSET KEY VALUE
* RDEL KEY
* RMOD KYE VALUE
* RCOUNT KEY
3. Hash操作:
* HGET KEY
* HSET KEY VALUE
* HDEL KEY
* HMOD KYE VALUE
* HCOUNT KEY
#### 待完成
使用策略模式替换switch case
#### 问题总结
##### 1. .bbs、R_X86_64_PC3错误
> nty_schedule_search_wait': nty_schedule.c:(.text+0x1de5): relocation truncated to fit: R_X86_64_PC32 against symbol
分配给C的栈空间有大小限制,很可能是栈空间不够了。需要增加栈空间
```bash
# 查看当前限制
ulimit -a
# 增加虚拟内存限制(例如设置为 4GB; 单位是 KB)
ulimit -v 4194304
# 取消堆栈大小限制
ulimit -s unlimited
```