CSDN 从零实现kv存储
参照redis,主要实现的功能:
1、数据的插入、查询、删除等操作
1)SET:插入key - value
2)GET:获取key对应的value
3)COUNT:统计已插入多少个key
4)DELETE:删除key以及对应的value
5)EXIST:判断key是否存在
2、实现不同的数据结构存储引擎
不同的数据结构,操作的效率是不一样的。因此我们实现基于数组array、红黑树rbtree、哈希hash、跳表skiptable 这四种数据结构,实现kv存储,并测试相应的性能。
3、测试用例
1)功能测试
2)10w的qps测试
主要涉及的知识点有
1)基于协程,一个连接对应一个协程
2)tcp网络交互
3)数据结构:数组array、红黑树rbtree、哈希hash、跳表skiptable、动态哈希dhash
进入到Ntyco
cd Ntyco
make
返回主目录
gcc -o kvstore kvstore.c -I ./NtyCo/core/ -L ./NtyCo/ -lntyco -lpthread -ldl
启动两个xshell窗口 一个运行
./kvstore
另一个运行
gcc test.c -o test
./test 192.168.3.128 9999