# KVstore **Repository Path**: yami0109/kvstore ## Basic Information - **Project Name**: KVstore - **Description**: KV存储广泛应用于分布式锁 、映射关系、第三方请求数据响应、嵌入式设备启动配置信息存储等多种需要存储场合,本例利用协程以及array、rbtree、hash、skiptable等结构数据引擎,实现KV存储的引擎层、接口层、协议层。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2024-07-24 - **Last Updated**: 2025-01-04 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # KVstore #### 介绍 KV存储广泛应用于分布式锁 、映射关系、第三方请求数据响应、嵌入式设备启动配置信息存储等多种需要存储场合,本例利用协程以及array、rbtree、hash、skiptable等结构数据引擎,实现KV存储的引擎层、接口层、协议层。 #### 软件架构 include和lib分别是本项目的引用到的库的头文件和库(自己封装的数据结构存储引擎,以及开源的协程库)。 test包含array、rbtree、hash、skiptable等存储结构的接口测试和性能测试。 kvstore.c包含程序入口,main中创建一个协程server,在server中监听客户端请求数据端口;每接入一个客户端连接,则创建一个serverReader,在serverReader中实现数据的读取、以及数据解析、解析完数据的回发; protocol.c实现本模型的数据协议解析过程。 kvengine.c实现引擎层数据结构接口的二次封装。 #### 安装教程 1. linux环境下运行 #### 使用说明 1. 编译方式一:命令编译 gcc -o kvstore kvstore.c kvengine.c kvengine.h appdef.h protocol.c -I ./include/ -L ./lib/ -lntyco -pthread -ldl -larray -lrbtree -lhash -lskiptable 2. 命令编译测试案例:gcc -o test testcase.c 3. 运行: server端执行./kvstore 客户端执行 ./test serverIP serverPort 注意:1)由于server端链接了.so动态库,在运行前需要先将动态库添加到系统path中。添加命令:export LD_LIBRARY_PATH=./lib:$LD_LIBRARY_PATH. 2)后续补充makefile编译方式,以及补充更过数据存储结构支持。 4. 编译方式二: makefile编译 直接执行make 5. 编译方式三: cmake编译 编译方法: cd build cmake make cd bin #切换到BIN目录下执行./kvstore testcase的编译方式未做更改。 6.编译方式四:xmake编译 编译方法: cd xbuild xmake 运行:xmake run 在运行前需要先将动态库添加到系统path中。添加命令:export LD_LIBRARY_PATH=./lib:$LD_LIBRARY_PATH.