zl程序教程

您现在的位置是:首页 >  其他

当前栏目

【TcaplusDB知识库】Client工具的功能介绍

2023-03-14 22:58:23 时间

【TcaplusDB知识库】Client工具的功能介绍

TcaplusDB提供client工具,支持使用条件过滤进行查询或更新。

Client工具在Api包的路径:release/x86_64/bin/tcaplus_client

Client命令中,可用条件过滤的命令有:

  • dump,全表扫描。
  • select,条件查询。
  • update,条件更新。
  • replace,条件替换。
  • delete,条件删除。
  • query,数组查询。

详细使用见client的help信息。

5.1 Dump

  • 全表扫描 client 内部调用 Traverse 或 ListTraverse 接口全表扫描。 如: dump * from user where rank < 10 limit 10;

5.2 Select

  • 主键查询 若条件中指定了主键(但不仅只有主键),client 内部调用 Get 或 ListGet 或 ListGetAll 接口进行查询。 如: select * from list_user where id = 1 and name = 'aka' and $.LastAccessTime < '2021-10-01';
  • Partkey查询 若条件中指定了部分key字段(可能还有其他条件),client 内部使用 IndexGetRequest 请求进行查询。 如: select * from list_user where id = 1 and $.LastAccessTime < '2021-10-01' limit 10; 注意,若可能返回多个记录,需使用 limit 指定数目,默认是 limit 1
  • 全表查询 若条件中无法确定全key(主键)或者部分key,那么 client 无法使用 ListGet 或 ListGetAll 接口进行查询。 那么 client 会优先尝试使用全局索引进行全表的SQL查询,若全局索引服务不可用,client 则使用 Traverse 或 ListTraverse 接口全表扫描,即等价于Dump。 Select 命令中,全局索引的优先级总是比全表遍历过滤查询高,在全局索引服务可用的情况下,若想强行使用全表遍历过滤,则可使用 Dump 命令。 如:select * from list_user where $.LastAccessTime < '2021-10-01' limit 10; 注意,若可能返回多个记录,需使用 limit 指定数目,默认是 limit 1

5.3 Update

  • 字段更新 client 内部调用 FieldSet 或 ListReplace 接口进行记录修改,因此条件中必须给定主键,对于 List 表还必须给定 -index 的值。 如: update list_user set rank = 0 where id = 1 and name = 'aka' and -index = 0;
  • 数组更新 client 内部调用 UpdateItem 或 ListUpdateItem 接口进行记录修改,因此条件中必须给定主键,对于 List 表还必须给定 -index 的值。 如: update user push gameids#[-1][$=123] where id = 1 and name = 'aka' and gameids not contains($=123);

5.4 Replace

  • 记录替换 client 内部调用 Set 或 ListReplace 接口进行记录修改,对于 List 表还必须给定 -index 的值。 如: replace into list_user (id, name, rank) values(1, 'aka', 100) where rank = 0 and -index = 0;

5.5 Delete

  • 记录删除 client 内部调用 Del 或 ListDel 接口进行记录修改,因此条件中必须给定主键,对于List表还必须给定 -index 的值。 如: delete from user where id = 1 and name = 'aka';
  • ListDelAll List 表,若不指定 -index,删除该主键下 List 的所有记录,但当前 ListDelAll 暂不支持条件过滤,因此条件中必须只有主键。

5.6 Query

  • 数组查询 client 内部调用 Query 或 ListQuery 接口查询数组字段,因此条件中必须给定主键,对于List表还必须给定 -index 的值。 如: query user get mailbox#[0 - -1][title = 'tcaplus'] where id = 1 and name = 'aka';

TcaplusDB是腾讯出品的分布式NoSQL数据库,存储和调度的代码完全自研。具备缓存+落地融合架构、PB级存储、毫秒级时延、无损水平扩展和复杂数据结构等特性。同时具备丰富的生态、便捷的迁移、极低的运维成本和五个九高可用等特点。客户覆盖游戏、互联网、政务、金融、制造和物联网等领域。