产品概述
产品优势
应用场景
产品架构
地域介绍
yum install -y golang
make build即可。编译好后,会生成一个可执行文件example,直接执行此文件即可演示所有示例接口。//TcaplusDB RESTful API 的连接参数const (//服务接入点,表所在集群 RESTful 连接地址,默认端口80EndPoint = "http://172.xx.xx.12/"//应用接入 ID,表所在集群接入IDAccessID = 310//应用密码,表所在集群访问密码AccessPassword = "Tcaplus2020"//表格组IDTableGroupID = 1//表名称TableName = "game_players")
//通过指定 EndPoint、AccessID、AccessPassword参数,创建 TcaplusClient 的对象 clientclient, err := tcaplus_client.NewTcaplusClient(EndPoint, AccessID, AccessPassword)if err != nil {fmt.Println(err.Error())return}
//AddRecord 插入记录//用户可将 record 定义成结构体/map/slice,需可转成 jsonrecord := map[string]interface{}{"player_id": 10805514,"player_name": "Calvin","player_email": "calvin@test.com","game_server_id": 10,"login_timestamp": []string{"2019-12-12 15:00:00"},"logout_timestamp": []string{"2019-12-12 16:00:00"},"is_online": false,"pay": map[string]interface{}{"pay_id": 10101,"amount": 1000,"method": 1,},}status, resp, err := client.AddRecord(record, tcaplus_client.RetAllLatestField, "userBuffer", TableGroupID, TableName)if err != nil {fmt.Println(err.Error())return}
/**@brief 根据 Key 字段查询记录,可以根据 selectFiled 过滤出部分字段@param [IN] key 需要查询的记录的 key 字段信息,可以是结构体,map,slice,从而转成 json,与 proto 中定义的类型保持一致@param [IN] selectFiled 需要查询的记录的字段列表,结构体嵌套则设为点分式,为 nil 表示查询全部字段@param [IN] groupID 表格组 ID@param [IN] tableName 表名@retval(3) http 响应码,http 响应内容,错误信息**/func (c *TcaplusClient) GetRecord(key interface{}, selectFiled []string, groupID int, tableName string) (string, []byte, error)
/**@brief 添加一条记录到表中,该记录若存在,则会报错@param [IN] record 需要添加的记录,可以是结构体,map,slice,从而转成 json,与 proto 中定义的类型保持一致@param [IN] resultFlag 返回值标记位,可设置为以下值RetOnlySucOrFail:应答中仅包含请求成功或失败RetEqualReq:应答中包含与请求一致的值RetAllLatestField:应答中包含被修改的数据的所有字段最新值RetAllOldField:应答中包含记录被修改前的值@param [IN] userBuffer 用户自定义信息,在响应信息中原样返回,不关注则填""@param [IN] groupID 表格组 ID@param [IN] tableName 表名@retval(3) http 响应码,http 响应内容,错误信息**/func (c *TcaplusClient) AddRecord(record interface{}, resultFlag int, userBuffer string, groupID int, tableName string) (string, []byte, error)
/**@brief 更新/插入一条记录到表中,该记录若存在,则更新;不存在,则插入@param [IN] record 需要添加的记录,可以是结构体,map,slice,从而转成 json,与 proto 中定义的类型保持一致@param [IN] resultFlag 返回值标记位,可设置为以下值RetOnlySucOrFail:应答中仅包含请求成功或失败RetEqualReq:应答中包含与请求一致的值RetAllLatestField:应答中包含被修改的数据的所有字段最新值RetAllOldField:应答中包含记录被修改前的值@param [IN] versionPolicy 记录的版本号校验策略,与 version 配合使用,用于乐观锁,不关注则设置为 NoCheckDataVersionAutoIncreaseCheckDataVersionAutoIncrease:检测记录版本号,只有当 version 与服务器端的版本号相同时,操作成功,记录版本号自增NoCheckDataVersionOverwrite:不检测记录版本号,强制把记录版本号 version 写入到服务器中NoCheckDataVersionAutoIncrease:不检测记录版本号,服务器端的版本号自增@param [IN] version 记录的版本号,用于版本号校验,不校验则设置为-1@param [IN] userBuffer 用户自定义信息,在响应信息中原样返回,不关注则填""@param [IN] groupID 表格组 ID@param [IN] tableName 表名@retval(3) http 响应码,http 响应内容,错误信息**/func (c *TcaplusClient) SetRecord(record interface{}, resultFlag int, versionPolicy int, version int, userBuffer string, groupID int, tableName string) (string, []byte, error)
/**@brief 删除一条记录,不存在,则报错@param [IN] record 需要删除的记录,包含 key 字段即可;可以是结构体,map,slice,从而转成 json,与 proto 中定义的类型保持一致@param [IN] resultFlag 返回值标记位,可设置为以下值RetOnlySucOrFail:应答中仅包含请求成功或失败RetEqualReq:应答中包含与请求一致的值RetAllLatestField:应答中包含被修改的数据的所有字段最新值RetAllOldField:应答中包含记录被修改前的值@param [IN] userBuffer 用户自定义信息,在响应信息中原样返回,不关注则填""@param [IN] groupID 表格组 ID@param [IN] tableName 表名@retval(3) http 响应码,http 响应内容,错误信息**/func (c *TcaplusClient) DeleteRecord(record interface{}, resultFlag int, userBuffer string, groupID int, tableName string) (string, []byte, error)
/**@brief 记录的部分字段查询,根据 key 字段查询记录,根据 selectFiled 过滤字段内容@note 该接口与 GetRecord 的区别:GetRecord 是查询的整条记录然后按 selectFiled 过滤;而 FieldGetRecord 是在 svr 端过滤,流量负载更低@param [IN] key 需要查询的记录的 key 字段信息,可以是结构体,map,slice,从而转成 json,与 proto 中定义的类型保持一致@param [IN] selectFiled 需要查询的记录的字段列表,不能为空,结构体嵌套则设为点分式@param [IN] groupID 表格组 ID@param [IN] tableName 表名@retval(3) http 响应码,http 响应内容,错误信息**/func (c *TcaplusClient) FieldGetRecord(key interface{}, selectFiled []string, groupID int, tableName string) (string, []byte, error)
/**@brief 更新一条记录,该记录若不存在则报错@param [IN] record 需要添加的记录,可以是结构体,map,slice,从而转成 json,与 proto 中定义的类型保持一致@param [IN] setField 需要更新的字段列表,不能为空,结构体嵌套则设为点分式@param [IN] resultFlag 返回值标记位,可设置为以下值RetOnlySucOrFail:应答中仅包含请求成功或失败RetEqualReq:应答中包含与请求一致的值@param [IN] versionPolicy 记录的版本号校验策略,与 version 配合使用,用于乐观锁,不关注则设置为 NoCheckDataVersionAutoIncreaseCheckDataVersionAutoIncrease:检测记录版本号,只有当 version 与服务器端的版本号相同时,操作成功,记录版本号自增NoCheckDataVersionOverwrite:不检测记录版本号,强制把记录版本号 version 写入到服务器中NoCheckDataVersionAutoIncrease:不检测记录版本号,服务器端的版本号自增@param [IN] version 记录的版本号,用于版本号校验,不校验则设置为-1@param [IN] userBuffer 用户自定义信息,在响应信息中原样返回,不关注则填""@param [IN] groupID 表格组 ID@param [IN] tableName 表名@retval(3) http 响应码,http 响应内容,错误信息**/func (c *TcaplusClient) FieldSetRecord(record interface{}, setField []string, resultFlag int, versionPolicy int, version int, userBuffer string, groupID int, tableName string) (string, []byte, error)
/**@brief 对记录中的整型字段进行自增/自减,此命令字仅支持 int32, int64, uint32 和 uint64类型字段@param [IN] record 需要更新的的记录,记录中的字段值为正,则表示自增,累加该值;为负,则表示自减,累减该值@param [IN] resultFlag 返回值标记位,可设置为以下值RetOnlySucOrFail:应答中仅包含请求成功或失败RetEqualReq:应答中包含与请求一致的值@param [IN] versionPolicy 记录的版本号校验策略,与 version 配合使用,用于乐观锁,不关注则设置为 NoCheckDataVersionAutoIncreaseCheckDataVersionAutoIncrease:检测记录版本号,只有当 version 与服务器端的版本号相同时,操作成功,记录版本号自增NoCheckDataVersionOverwrite:不检测记录版本号,强制把记录版本号 version 写入到服务器中NoCheckDataVersionAutoIncrease:不检测记录版本号,服务器端的版本号自增@param [IN] version 记录的版本号,用于版本号校验,不校验则设置为-1@param [IN] userBuffer 用户自定义信息,在响应信息中原样返回,不关注则填""@param [IN] groupID 表格组 ID@param [IN] tableName 表名@retval(3) http 响应码,http 响应内容,错误信息**/func (c *TcaplusClient) FieldIncRecord(record interface{}, resultFlag int, versionPolicy int, version int, userBuffer string, groupID int, tableName string) (string, []byte, error)
/**@brief 按索引进行批量查询@param [IN] key 需要查询的记录,仅需要索引包含的 key 字段,可以是结构体,map,slice,从而转成 json,与 proto 中定义的类型保持一致@param [IN] indexName 索引名称@param [IN] selectFiled 需要查询的记录的字段列表,结构体嵌套则设为点分式;为 nil 表示查询全部字段@param [IN] limit 批量返回的记录上限,>0有效@param [IN] offset 批量返回的记录的偏移,>=0有效@param [IN] groupID 表格组 ID@param [IN] tableName 表名@retval(3) http 响应码,http 响应内容,错误信息**/func (c *TcaplusClient) PartKeyGetRecord(key interface{}, indexName string, selectFiled []string, limit int, offset int, groupID int, tableName string) (string, []byte, error)
256KB,limit 的设置依赖于单条记录大小。推荐设置策略:TotalNum 和 RemainNum标识来判断数据是否获取完全。文档反馈