Tinydb 是一个超小的支持插件式存储引擎的的 NOSQL 服务器,核心代码只有200行C,并利用C模拟了C++的多态和继承,你可以在此基础上实现自己的存储引擎,Tinydb 小巧精简,非常适用于课堂教学。
Tinydb 内置了两种存储引擎,内存式存储引擎(基于 uthash)和可持久化的存储引擎(基于leveldb),另外还提供了如何实现自己的存储引擎的模板样例,你可以按照此例子一步一步实现自己的存储引擎。
Tinydb 目前除了作为程序库的方式嵌入到你的应用中以外,还提供了 RESTful 访问方式,网络连接的处理采用libevent2,你可以在浏览器里面进行数据库操作,如:
SET
http:127.0.0.1:8088/set?key=hello&value=world {“err”: “OK”,”msg”:”Set key successfully.”}
http:127.0.0.1:8088/set?key=hello&value=world
{“err”: “OK”,”msg”:”Set key successfully.”}
GET
http:127.0.0.1:8088/get?key=hello {“key”: “hello”,”val”:”world”}
http:127.0.0.1:8088/get?key=hello
{“key”: “hello”,”val”:”world”}
DELETE
http:127.0.0.1:8088/delete?key=hello {“err”: “OK”,”msg”:”Delete key successfully.”}
http:127.0.0.1:8088/delete?key=hello
{“err”: “OK”,”msg”:”Delete key successfully.”}