技术开发 频道

张宴:Tokyo Cabinet数据库及其扩展应用

  TCSQL是金山逍遥网在Tokyo Cabinet TCTDB的基础上,结合Key-Value对象缓存,借鉴SQL语句的SELECT、INSERT、UPDATE、DELETE思想与功能开发的分布式实时列表缓存数据库,可实现对列表页数据、记录条数的实时缓存。

  TCSQL采用HTTP GET/POST协议+JSON数据交换格式在客户端、服务器端之间进行数据交互。

  TCSQL实时列表缓存数据库单机能够支撑1万以上的并发连接。1万并发连接下,QPS(每秒查询率)能够达到8000~15000次。

  TCSQL拥有了MySQL数据库单表具备的大部分功能。

  TCSQL的select查询示例:

  curl “http://127.0.0.1:3888/?command=select&type=*&where=pkey:NUMGE:0|title:STRINC:keyword&order_by=pkey&order_sort=NUMDESC&limit_skip=0&limit_max=10”

  等同于MySQL的SQL查询语句:

  SELECT * FROM table WHERE pkey >= 0 AND title LIKE ‘%keyword%’ ORDER BY pkey DESC LIMIT 0,10;跟MySQL的LIKE全表扫描不同的是,TCSQL支持创建倒排索引,STRINC使用的是全文检索。

  通过PHP Client操作TCSQL:

  $tcsql = new Tcsql();

  
//INSERT插入

  $result
= $tcsql->insert($server_host, $server_port, $array_data);

  
//SELECT查询

  $result
= $tcsql->select($server_host, $server_port, "type=*&where=uid: NUMOREQ:1,7,29,43&order_by=pkey&order_by=NUMDESC&limit_skip=0&limit_max=10“);

  
//UPDATE更新

  $result
= $tcsql->update($server_host, $server_port, $array_data, “where=name:STREQ:张三|sex:NUMEQ:1“);

  
//DELETE删除

  $result
= $tcsql->delete($server_host, $server_port, $array_data, "where=uid:NUMEQ:5");
0
相关文章