使用C语言操作Tokyo Cabinet 的数据库

首先自然要安装Tokyo Cabinet

 

Sh代码 

  1. tar zxvf tokyocabinet-1.4.28.tar.gz  

  2. cd tokyocabinet-1.4.28/  

  3. ./configure  

  4. make  

  5. make install  

  6. cd ../  

 

以下是对Tokyo Cabinet 的操作,具体解释可以看代码—代码是最好的解释.

文件名称是:tcbdb.c

 C代码 

  1. /** 

  2.  * Operate the Tokyo Cabinet 

  3.  * @author zhoubaochuan 

  4.  * @email :rtxbc@163.com 

  5.  * @date:2011-07-13 

  6.  * @gcc : gcc tcbdb.c  -I/usr/local/include/ -L/usr/local/lib/ -ltokyocabinet -lz -lbz2 -lrt -lpthread -lm -lc -O2 -g --static 

  7.  */  

  8.   

  9. #include <stdio.h>  

  10.   

  11. /* Import the Tokyo Cabinet C's library*/  

  12. #include <tcbdb.h>  

  13.   

  14. int main(int argc, char *argv[]){  

  15.     char *datapath = "/opt/data/test/C/queue/tcbdb.db";  

  16.     /* Allocate a region on memory */  

  17.     char *dataname = (char *)tccalloc(1,1024);  

  18.   

  19.       

  20.     TCBDB *db = tcbdbnew(); /* Create a B+ tree database object  */  

  21.     tcbdbsetmutex(db);  

  22.     tcbdbtune(db,128,256, 32749,8,10,100);  

  23.     tcbdbsetcache(db,1024,512);  

  24.     tcbdbsetxmsiz(db,1024100);  

  25.   

  26.       

  27.     if(!tcbdbopen(db,datapath,BDBOWRITER|BDBOREADER)){  /* Open a database file and connect a B+ tree database object. */  

  28.         fprintf(stderr,"It is failure to open a database !\n");  

  29.         exit(1);  

  30.     }     

  31.     //free((void *)datapath);  

  32.     //fprintf(stderr,"==============It is successful to open a database : ===============\n");  

  33.   

  34.     char *key = "t_key";  

  35.     char *value = "zhoubaochuan";  

  36.   

  37.     fprintf(stderr, "============== Store value. ================\n key:%s; \n value:%s \n ", key, value);  

  38.     /* Store a new record into a B+ tree database object. */  

  39.     tcbdbput2(db, key, value);  

  40.   

  41.     fprintf(stderr, "============== Retrieve a record. ================\n");  

  42.     /* Retrieve a record in a B+ tree database object as a volatile buffer. */  

  43.     char *retrieve = tcbdbget2(db,key);  

  44.     fprintf(stderr, "Retriver's Value:%s \n", retrieve);  

  45.   

  46.     /* Synchronize updated contents of a B+ tree database object with the file and the device. */  

  47.     tcbdbsync(db);   /* 实时刷新到磁盘 */  

  48.   

  49.     /* Close a B+ tree database object. */  

  50.     tcbdbclose(db);  

  51.       

  52.     return 0;  

  53. }  

 

 编译

 Sh代码 

  1. gcc tcbdb.c  -I/usr/local/include/ -L/usr/local/lib/ -ltokyocabinet -lz -lbz2 -lrt -lpthread -lm -lc -O2 -g --static  

 

 

执行结果

 Sh代码 

  1. [root@zhoubc queue]# ./a.out   

  2. ============== Store value. ================  

  3.  key:t_key;   

  4.  value:zhoubaochuan   

  5.  ============== Retrieve a record. ================  

  6. Retriver's Value:zhoubaochuan   

 

 参考文献:

http://fallabs.com/tokyocabinet/

转载于:https://my.oschina.net/u/554660/blog/163472

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值