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");
//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");