工作中使用了一些数据库,将数据库的客户端封装成易用的c++类。
1. gdbm
一个比较早期的kv存储方案,key叫索引键,value数一条数据记录,一个表就是一个数据库文件,数据文件和内存映射,适合做配置记录.
如:QConf的使用 https://github.com/Qihoo360/QConf
2. tcbdb
tcbdb是一个B+树方式存储数据的开源实现,具有B+树增删改查都比较高效的特效,缺点是使用之前需要预估数据使用的空间大小,设置叶子节点数,非叶子节点树等属性,创建完数据库没有任何数据写入时,就会占用几百M的磁盘空间。
3. sqlite3
4. mysql
基于libmysqlclient实现的一个mysql的客户端。
5. pgsql
基于libpq实现的一个postGRESQL的客户端。
6. oracle
基于OTL实现的一个oracle客户端。
7.hiredis
redis自带的一个客户端,redis适合键值在1k以内的kv存储场景,如:存session,实体属性,购物车数据等高内聚的数据。
8.leveldb
google开源的一个非常高效kv数据库,基于LSM tree实现,适用于写多读少的场景,将写入的数据进行排序,合并,把随机写转化成了顺序写。
9.memcached
大名鼎鼎的kv数据库,内存缓存实现方案,适用于键值较大的场景,键值较小用redis,键值较大用memcached。