# REST API
Ignite提供了一个HTTP REST客户端,可以以REST的方式通过HTTP或者HTTPS协议与集群进行通信。REST API可以用于执行不同的操作,比如对缓存进行读/写,执行任务,获取各种指标等等。
从内部来说,Ignite使用Jetty来提供HTTP服务,关于如何配置Jetty,请参见下面的配置章节的介绍。
# 1.入门
要启用HTTP连接,确保在类路径中包含ignite-rest-http
模块,在二进制包中,这意味着将其从IGNITE_HOME/libs/optional/
拷贝到IGNITE_HOME/libs
中,具体请参见启用模块章节的介绍。
不需要特别的配置,连接器就会自动启动,然后监听8080
端口,可以通过curl
检测其是否工作正常:
curl 'http://localhost:8080/ignite?cmd=version'
请求参数可以通过URL传递,也可以通过表单数据提交方式传递:
curl 'http://localhost:8080/ignite?cmd=put&cacheName=myCache' -X POST -H 'Content-Type: application/x-www-form-urlencoded' -d 'key=testKey&val=testValue'
# 1.1.配置
修改HTTP服务器参数的方法如下:
下表列出了ConnectorConfiguration
中和HTTP服务器有关的参数:
参数名 | 描述 | 可选 | 默认值 |
---|---|---|---|
setSecretKey(String) | 定义用于客户端认证的密钥,如果进行了设定,客户端请求必须包含HTTP头X-Signature ,值为:[1]:[2] ,这里[1] 为毫秒值的时间戳,[2] 为密钥的Base64格式的SHA1哈希值。 | 是 | null |
setPortRange(int) | Jetty服务的端口范围,如果在Jetty配置文件中或者IGNITE_JETTY_PORT 系统属性中配置的端口已被占用,Ignite会将该端口加1然后再做一次绑定直到设定的范围上限。 | 是 | 100 |
setJettyPath(String) | Jetty配置文件的路径,要么是绝对路径,要么是相对于IGNITE_HOME ,如果未指定,Ignite会用简单的HTTP连接器启动Jetty服务,这个连接器会分别使用IGNITE_JETTY_HOST 和IGNITE_JETTY_PORT 系统参数作为主机和端口,如果IGNITE_JETTY_HOST 未设定,会使用localhost,如果IGNITE_JETTY_PORT 未设定,默认会使用8080。 | 是 | null |
setMessageInterceptor(ConnectorMessageInterceptor) | 转换通过REST协议进行交换的所有对象的拦截器。比如在客户端使用自定义的序列化,那么可以写一个拦截器来将从客户端收到的二进制数据转换为Java对象,然后就可以直接访问。 | 是 | null |
Jetty XML示例配置
配置文件的路径通过ConnectorConfiguration.setJettyPath(String)
设定,如上所述:
<?xml version="1.0"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure.dtd">
<Configure id="Server" class="org.eclipse.jetty.server.Server">
<Arg name="threadpool">
<!-- Default queued blocking thread pool -->
<New class="org.eclipse.jetty.util.thread.QueuedThreadPool">
<Set name="minThreads">20</Set>
<Set name="maxThreads">200</Set>
</New>
</Arg>
<New id="httpCfg" class="org.eclipse.jetty.server.HttpConfiguration">
<Set name="secureScheme">https</Set>
<Set name="securePort">8443</Set>
<Set name="sendServerVersion">true</Set>
<Set name="sendDateHeader">true</Set>
</New>
<Call name="addConnector">
<Arg>
<New class="org.eclipse.jetty.server.ServerConnector">
<Arg name="server"><Ref refid="Server"/></Arg>
<Arg name="factories">
<Array type="org.eclipse.jetty.server.ConnectionFactory">
<Item>
<New class="org.eclipse.jetty.server.HttpConnectionFactory">
<Ref refid="httpCfg"/>
</New>
</Item>
</Array>
</Arg>
<Set name="host">
<SystemProperty name="IGNITE_JETTY_HOST" default="localhost"/>
</Set>
<Set name="port">
<SystemProperty name="IGNITE_JETTY_PORT" default="8080"/>
</Set>
<Set name="idleTimeout">30000</Set>
<Set name="reuseAddress">true</Set>
</New>
</Arg>
</Call>
<Set name="handler">
<New id="Handlers" class="org.eclipse.jetty.server.handler.HandlerCollection">
<Set name="handlers">
<Array type="org.eclipse.jetty.server.Handler">
<Item>
<New id="Contexts" class="org.eclipse.jetty.server.handler.ContextHandlerCollection"/>
</Item>
</Array>
</Set>
</New>
</Set>
<Set name="stopAtShutdown">false</Set>
</Configure>
# 1.2.安全
当集群配置认证后,所有的REST API访问都需要提供凭据来做认证,认证成功后会返回一个会话令牌,该令牌可以在该会话的任意命令中使用。
请求认证有两种方式:
1.使用带有ignite.login=[user]&ignite.password=[password]
参数的authenticate
命令:
https://[host]:[port]/ignite?cmd=authenticate&ignite.login=[user]&ignite.password=[password]
2.在任意REST命令的连接串中,加上ignite.login=[user]&ignite.password=[password]
参数,下面使用version
命令举例:
http://[host]:[port]/ignite?cmd=version&ignite.login=[user]&ignite.password=[password]
上面的示例中,需要将[host]
、[port]
、[user]
和[password]
替换为实际值。
在浏览器中执行上面的字符串都会返回一个会话令牌,如下所示:
{"successStatus":0,"error":null,"sessionToken":"EF6013FF590348CE91DEAE9870183BEF","response":true}
获得这个令牌之后,就可以像下面这样,在连接串中加上sessionToken
参数:
http://[host]:[port]/ignite?cmd=top&sessionToken=[sessionToken]
上面的示例中,需要将[host]
、[port]
、[sessionToken]
替换为实际值。
注意
如果服务端开启了认证,那么用户的凭据或者令牌就是必须的,如果既不提供sessionToken
,也不提供user
和password
会出错:{"successStatus":2,"sessionToken":null,"error":"Failed to handle request - session token not found or invalid","response":null}
。
会话令牌过期
会话令牌有效期只有30秒,如果使用一个过期的令牌会报错:{"successStatus":1,"error":"Failed to handle request - unknown session token (maybe expired session) [sesTok=12FFFD4827D149068E9FFF59700E5FDA]","sessionToken":null,"response":null}
。
如果要自定义过期时间,可以配置IGNITE_REST_SESSION_TIMEOUT
系统参数,单位为秒。
比如:-DIGNITE_REST_SESSION_TIMEOUT=3600
# 2.数据类型
REST API默认以String
格式交换查询参数,集群也是按照String
对象来处理参数。
如果一个参数的类型不是String
,可以使用keyType
或valueType
来指定参数的真实类型,REST API同时支持Java类型和自定义类型:
# 2.1.Java类型
REST键类型/值类型 | 对应的Java类型 |
---|---|
boolean | java.lang.Boolean |
byte | java.lang.Byte |
short | java.lang.Short |
integer | java.lang.Integer |
long | java.lang.Long |
float | java.lang.Float |
double | java.lang.Double |
date | java.sql.Date ,数值应该为valueOf(String) 方法支持的格式,比如:2018-01-01 |
time | java.sql.Time ,数值应该为valueOf(String) 方法支持的格式,比如:01:01:01 |
timestamp | java.sql.Timestamp ,数值应该为valueOf(String) 方法支持的格式,比如:2018-02-18%2001:01:01 |
uuid | java.util.UUID |
IgniteUuid | org.apache.ignite.lang.IgniteUuid |
下面的put
命令,带有keyType=int
和valueType=date
参数。
http://[host]:[port]/ignite?cmd=put&key=1&val=2018-01-01&cacheName=myCache&keyType=int&valueType=date
类似的带有keyType=int
和valueType=date
参数的get
命令为:
http://[host]:[port]/ignite?cmd=get&key=1&cacheName=myCache&keyType=int&valueType=date
# 2.2.自定义类型
通过Ignite的REST协议,JSON格式可以用于交换复杂的自定义对象。
比如,假定有一个Person
类,下面是要发给集群的实例对象的JSON表示:
{
"uid": "7e51118b",
"name": "John Doe",
"orgId": 5678901,
"married": false,
"salary": 156.1
}
下一步,使用下面的REST请求,通过配置valueType
参数为Person
,val
参数为JSON对象,来将对象写入集群:
http://[host]:[port]/ignite?cacheName=testCache&cmd=put&keyType=int&key=1&valueType=Person
&val=%7B%0A+++++%22uid%22%3A+%227e51118b%22%2C%0A+++++%22name%22%3A+%22John+Doe%22%2C%0A+++++%22orgId%22%3A+5678901%2C%0A+++++%22married%22%3A+false%2C%0A+++++%22salary%22%3A+156.1%0A++%7D&
服务端接收到这个请求后,将按照以下转换过程将对象从JSON转换为内部二进制对象格式:
- 如果
Person
类存在并且在服务端的类路径上可用,则JSON对象将解析为Person
类的实例; - 如果
Person
类在服务端的类路径上不可用,但是有一个QueryEntity
对象定义了Person
,则将JSON对象解析为Person
类型的二进制对象; - 否则,将按照常规JSON约定解析JSON对象的字段类型:
"uid": "7e51118b", // string
"name": "John Doe", // string
"orgId": 5678901, // int
"married": false, // boolean
"salary": 156.1 // double
当通过Ignite的REST协议的keyType
参数配置自定义键类型时,同样的转换规则也适用。
# 3.返回值
HTTP REST请求返回一个JSON对象,每一个命令都有一个类似的结构,这个对象有如下的结构:
名字 | 类型 | 描述 | 示例 |
---|---|---|---|
affinityNodeId | string | 关联节点ID | 2bd7b049-3fa0-4c44-9a6d-b5c7a597ce37 |
error | string | 如果服务器无法处理请求,出现的错误的描述 | 每个命令单独指定 |
sessionToken | String | 如果服务端开启认证,该字段包含了在会话有效期内可以用于其它命令的会话令牌,如果关闭认证,该字段为空。 | 如果认证打开,EF6013FF590348CE91DEAE9870183BEF,否则为空 |
response | jsonObject | 该命令包含命令执行结果 | 每个命令单独指定 |
successStatus | Integer | 返回状态码: 成功:0 失败:1 授权失败:2 安全检查失败:3 | 0 |
# 4.REST API参考
# 4.1.version
version命令显示当前Ignite的版本。
URL:
http://host:port/ignite?cmd=version
请求
名称 | 类型 | 可选 | 描述 | 示例 |
---|---|---|---|---|
cmd | string | 否 | version,小写 |
响应
{
"error": "",
"response": "1.0.0",
"successStatus": 0
}
名称 | 类型 | 描述 | 示例 |
---|---|---|---|
response | string | Ignite版本 | 1.0.0 |
# 4.2.state
返回当前集群的状态。
请求:
http://host:port/ignite?cmd=state
响应:
如果集群为激活状态则返回true
,否则返回false
。
{
"successStatus":0,
"error":null,
"sessionToken":null,
"response": "ACTIVE_READ_ONLY"
}
# 4.3.setstate
setstate
命令会修改集群的状态。
请求:
http://host:port/ignite?cmd=setstate&state={new_state}
参数 | 类型 | 描述 |
---|---|---|
state | String | 新的集群状态,下面值之一: - ACTIVE :激活状态;- ACTIVE_READ_ONLY :只读状态;- INACTIVE :冻结集群。**警告:**冻结会在所有集群节点上释放已分配的所有内存资源,包括应用的数据,并禁用公开的集群API。如果有未持久化(原生持久化或外部存储)的缓存,则将丢失数据,并且必须重新加载这些缓存。非持久化的系统缓存也会被清理。 |
响应:
{
"successStatus":0,
"error":null,
"sessionToken":null,
"response":"setstate done"
}
# 4.4.incr
incr命令增加然后获得给定原子性Long类型的当前值。
请求
http://host:port/ignite?cmd=incr&cacheName=partionedCache&key=incrKey&init=15&delta=10
名称 | 类型 | 可选 | 描述 | 示例 |
---|---|---|---|---|
cmd | string | 否 | incr,小写 | |
cacheName | string | 是 | 缓存名称,如果未提供,会使用默认的缓存 | partionedCache |
key | string | 否 | 原子性Long类型的名称 | counter |
init | long | 是 | 初始值 | 15 |
delta | long | 否 | 增加的值 | 42 |
响应 响应包括了操作后的值。
{
"affinityNodeId": "e05839d5-6648-43e7-a23b-78d7db9390d5",
"error": "",
"response": 42,
"successStatus": 0
}
# 4.5.decr
decr命令减去然后获得给定原子性Long类型的当前值。
请求
http://host:port/ignite?cmd=decr&cacheName=partionedCache&key=decrKey&init=15&delta=10
名称 | 类型 | 可选 | 描述 | 示例 |
---|---|---|---|---|
cmd | string | 否 | decr,小写 | |
cacheName | string | 是 | 缓存名称,如果未提供,会使用默认的缓存 | partionedCache |
key | string | 否 | 原子性Long类型的名称 | counter |
init | long | 是 | 初始值 | 15 |
delta | long | 否 | 减去的值 | 42 |
响应 响应包括了操作后的值。
{
"affinityNodeId": "e05839d5-6648-43e7-a23b-78d7db9390d5",
"error": "",
"response": -42,
"successStatus": 0
}
# 4.6.cache
cache命令可以获得Ignite缓存的指标。
请求
http://host:port/ignite?cmd=cache&cacheName=partionedCache&destId=8daab5ea-af83-4d91-99b6-77ed2ca06647
名称 | 类型 | 可选 | 描述 | 示例 |
---|---|---|---|---|
cmd | string | 否 | cache,小写 | |
cacheName | string | 是 | 缓存名称,如果未提供,会使用默认的缓存 | partionedCache |
destId | string | 是 | 要返回指标的节点Id | 8daab5ea-af83-4d91-99b6-77ed2ca06647 |
响应
{
"affinityNodeId": "",
"error": "",
"response": {
"createTime": 1415179251551,
"hits": 0,
"misses": 0,
"readTime": 1415179251551,
"reads": 0,
"writeTime": 1415179252198,
"writes": 2
},
"successStatus": 0
}
名称 | 类型 | 描述 | 示例 |
---|---|---|---|
response | jsonObject | JSON对象包含了缓存的指标,比如创建时间,读计数等 | {"createTime": 1415179251551, "hits": 0, "misses": 0, "readTime":1415179251551, "reads": 0,"writeTime": 1415179252198, "writes": 2 |
} |
# 4.7.size
size命令返回指定缓存的总条目的数量。
请求
http://host:port/ignite?cmd=size&cacheName=partionedCache
名称 | 类型 | 可选 | 描述 | 示例 |
---|---|---|---|---|
cmd | string | 否 | size,小写 | |
cacheName | string | 是 | 缓存名称,如果未提供,会使用默认的缓存 | partionedCache |
响应
{
"affinityNodeId": "",
"error": "",
"response": 1,
"successStatus": 0
}
名称 | 类型 | 描述 | 示例 |
---|---|---|---|
response | number | 给定缓存的总条目数量 | 5 |
# 4.8.metadata
metadata命令返回指定缓存的元数据。
请求
http://host:port/ignite?cmd=metadata&cacheName=partionedCache
名称 | 类型 | 可选 | 描述 | 示例 |
---|---|---|---|---|
cmd | string | 否 | metadata,小写 | |
cacheName | string | 是 | 缓存名称,如果未提供,会使用默认的缓存 | partionedCache |
响应
{
"error": "",
"response": {
"cacheName": "partionedCache",
"types": [
"Person"
],
"keyClasses": {
"Person": "java.lang.Integer"
},
"valClasses": {
"Person": "org.apache.ignite.Person"
},
"fields": {
"Person": {
"_KEY": "java.lang.Integer",
"_VAL": "org.apache.ignite.Person",
"ID": "java.lang.Integer",
"FIRSTNAME": "java.lang.String",
"LASTNAME": "java.lang.String",
"SALARY": "double"
}
},
"indexes": {
"Person": [
{
"name": "ID_IDX",
"fields": [
"id"
],
"descendings": [],
"unique": false
},
{
"name": "SALARY_IDX",
"fields": [
"salary"
],
"descendings": [],
"unique": false
}
]
}
},
"sessionToken": "",
"successStatus": 0
}
# 4.9.cas
cas命令在之前的值等于预期值时会在缓存中存储给定的键-值对。
请求
http://host:port/ignite?cmd=cas&key=casKey&val=newValue&val2=expectedValue&cacheName={cacheName}&destId={nodeId}
名称 | 类型 | 可选 | 描述 | 示例 |
---|---|---|---|---|
cmd | string | 否 | cas,小写 | |
cacheName | string | 是 | 缓存名称,如果未提供,会使用默认的缓存 | partionedCache |
key | string | 否 | 缓存内要保存的键值 | name |
val | string | 否 | 与给定键对应的值 | Jack |
val2 | string | 否 | 预期值 | Bob |
destId | string | 是 | 要返回指标的节点Id | 8daab5ea-af83-4d91-99b6-77ed2ca06647 |
响应
如果替换发生则为true
,否则为false
。
{
"affinityNodeId": "1bcbac4b-3517-43ee-98d0-874b103ecf30",
"error": "",
"response": true,
"successStatus": 0
}
# 4.10.append
append命令为给定的键关联的值增加一个后缀。
请求
http://host:port/ignite?cmd=append&key=appendKey&val=_suffix&cacheName=partionedCache&destId=8daab5ea-af83-4d91-99b6-77ed2ca06647
名称 | 类型 | 可选 | 描述 | 示例 |
---|---|---|---|---|
cmd | string | 否 | append,小写 | |
cacheName | string | 是 | 缓存名称,如果未提供,会使用默认的缓存 | partionedCache |
key | string | 否 | 缓存内要保存的键值 | name |
val | string | 否 | 为当前值要增加的后缀 | Jack |
destId | string | 是 | 要返回指标的节点Id | 8daab5ea-af83-4d91-99b6-77ed2ca06647 |
响应
{
"affinityNodeId": "1bcbac4b-3517-43ee-98d0-874b103ecf30",
"error": "",
"response": true,
"successStatus": 0
}
名称 | 类型 | 描述 | 示例 |
---|---|---|---|
response | boolean | 如果替换发生则为true,否则false | true |
# 4.11.prepend
prepend命令为给定的键关联的值增加一个前缀。
请求
http://host:port/ignite?cmd=prepend&key=prependKey&val=prefix_&cacheName=partionedCache&destId=8daab5ea-af83-4d91-99b6-77ed2ca06647
名称 | 类型 | 可选 | 描述 | 示例 |
---|---|---|---|---|
cmd | string | 否 | prepend,小写 | |
cacheName | string | 是 | 缓存名称,如果未提供,会使用默认的缓存 | partionedCache |
key | string | 否 | 缓存内要保存的键值 | name |
val | string | 否 | 为当前值要增加的前缀 | Name_ |
destId | string | 是 | 要返回指标的节点Id | 8daab5ea-af83-4d91-99b6-77ed2ca06647 |
响应
{
"affinityNodeId": "1bcbac4b-3517-43ee-98d0-874b103ecf30",
"error": "",
"response": true,
"successStatus": 0
}
名称 | 类型 | 描述 | 示例 |
---|---|---|---|
response | boolean | 如果替换发生则为true,否则false | true |
# 4.12.rep
rep命令为给定的键存储一个新值。
请求
http://host:port/ignite?cmd=rep&key=repKey&val=newValue&cacheName=partionedCache&destId=8daab5ea-af83-4d91-99b6-77ed2ca06647
名称 | 类型 | 可选 | 描述 | 示例 |
---|---|---|---|---|
cmd | string | 否 | rep,小写 | |
cacheName | string | 是 | 缓存名称,如果未提供,会使用默认的缓存 | partionedCache |
key | string | 否 | 缓存内要保存的键值 | name |
val | string | 否 | 与给定键关联的新值 | Jack |
destId | string | 是 | 要返回指标的节点Id | 8daab5ea-af83-4d91-99b6-77ed2ca06647 |
响应
如果替换发生则为true
,否则为false
。
{
"affinityNodeId": "1bcbac4b-3517-43ee-98d0-874b103ecf30",
"error": "",
"response": true,
"successStatus": 0
}
# 4.13.get
get命令在缓存中获取给定的键对应的值。
请求
http://host:port/ignite?cmd=get&key={getKey}&cacheName={cacheName}&destId={nodeId}
名称 | 类型 | 可选 | 描述 | 示例 |
---|---|---|---|---|
cmd | string | 否 | get,小写 | |
cacheName | string | 是 | 缓存名称,如果未提供,会使用默认的缓存 | partionedCache |
key | string | 否 | 要返回的值对应的键 | testKey |
keyType | Java内置类型 | 是 | 具体可以看上面的数据类型章节。 | |
destId | string | 是 | 要返回指标的节点Id | 8daab5ea-af83-4d91-99b6-77ed2ca06647 |
响应
{
"affinityNodeId": "2bd7b049-3fa0-4c44-9a6d-b5c7a597ce37",
"error": "",
"response": "value from cache",
"successStatus": 0
}
名称 | 类型 | 描述 | 示例 |
---|---|---|---|
response | jsonObject | 给定键的值 | {"name": "Alex","id":1,"salary":2000} |
# 4.14.getall
getall命令会从缓存中获取给定键的数据。
请求
http://host:port/ignite?cmd=getall&k1=getKey1&k2=getKey2&k3=getKey3&cacheName=partionedCache&destId=8daab5ea-af83-4d91-99b6-77ed2ca06647
名称 | 类型 | 可选 | 描述 | 示例 |
---|---|---|---|---|
cmd | string | 否 | rmvall,小写 | |
cacheName | string | 是 | 缓存名称,如果未提供,会使用默认的缓存 | partionedCache |
k1...kN | string | 否 | 要从缓存中获取的值对应的键 | key1, key2, ..., keyN |
destId | string | 是 | 要返回指标的节点Id | 8daab5ea-af83-4d91-99b6-77ed2ca06647 |
响应
{
"affinityNodeId": "",
"error": "",
"response": {
"key1": "value1",
"key2": "value2"
},
"successStatus": 0
}
名称 | 类型 | 描述 | 示例 |
---|---|---|---|
response | jsonObject | 键-值对映射 | {"key1": "value1","key2": "value2"} |
数组形式输出
要获得数组形式的输出,需要配置系统属性IGNITE_REST_GETALL_AS_ARRAY
为true
,如果配置了这个属性,那么getall
命令的输出格式为:{“successStatus”:0,“affinityNodeId”:null,“error”:null,“sessionToken”:null,“response”:[{“key”:“key1”,“value”:“value1”},{“key”:“key2”,“value”:“value2”}]}
# 4.15.getrmv
getrmv命令在缓存中删除给定键的映射,然后返回原值。
请求
http://host:port/ignite?cmd=getrmv&cacheName=partionedCache&destId=8daab5ea-af83-4d91-99b6-77ed2ca06647&key=name
名称 | 类型 | 可选 | 描述 | 示例 |
---|---|---|---|---|
cmd | string | 否 | getrep,小写 | |
cacheName | string | 是 | 缓存名称,如果未提供,会使用默认的缓存 | partionedCache |
key | string | 否 | 缓存内要删除的键值 | name |
destId | string | 是 | 要返回指标的节点Id | 8daab5ea-af83-4d91-99b6-77ed2ca06647 |
响应
{
"affinityNodeId": "1bcbac4b-3517-43ee-98d0-874b103ecf30",
"error": "",
"response": value,
"successStatus": 0
}
名称 | 类型 | 描述 | 示例 |
---|---|---|---|
response | jsonObject | 给定键的原值 | {"name": "Bob"} |
# 4.16.getput
getput命令在缓存中存储给定的键-值对,如果之前存在该映射,则返回原值。
请求
http://host:port/ignite?cmd=getput&key=getKey&val=newVal&cacheName=partionedCache
名称 | 类型 | 可选 | 描述 | 示例 |
---|---|---|---|---|
cmd | string | 否 | getput,小写 | |
cacheName | string | 是 | 缓存名称,如果未提供,会使用默认的缓存 | partionedCache |
key | string | 否 | 缓存内要存储的键值 | name |
val | string | 否 | 与给定键关联的值 | Jack |
destId | string | 是 | 要返回指标的节点Id | 8daab5ea-af83-4d91-99b6-77ed2ca06647 |
响应
{
"affinityNodeId": "2bd7b049-3fa0-4c44-9a6d-b5c7a597ce37",
"error": "",
"response": {"name": "bob"},
"successStatus": 0
}
名称 | 类型 | 描述 | 示例 |
---|---|---|---|
response | jsonObject | 给定键的原值 | {"name": "bob"} |
# 4.17.getputifabs
getputifabs命令只有在缓存中不存在该映射时才会进行存储,否则会返回对应该键的原值。
请求
http://host:port/ignite?cmd=getputifabs&key=getKey&val=newVal&cacheName=partionedCache
名称 | 类型 | 可选 | 描述 | 示例 |
---|---|---|---|---|
cmd | string | 否 | getputifabs,小写 | |
cacheName | string | 是 | 缓存名称,如果未提供,会使用默认的缓存 | partionedCache |
key | string | 否 | 缓存内要存储的键值 | name |
val | string | 否 | 与给定键关联的值 | Jack |
destId | string | 是 | 要返回指标的节点Id | 8daab5ea-af83-4d91-99b6-77ed2ca06647 |
响应
{
"affinityNodeId": "2bd7b049-3fa0-4c44-9a6d-b5c7a597ce37",
"error": "",
"response": "value",
"successStatus": 0
}
名称 | 类型 | 描述 | 示例 |
---|---|---|---|
response | jsonObject | 给定键对应的原值 | {"name": "bob"} |
# 4.18.getrep
getrep命令为给定的键存储一个新值,然后返回原值。
请求
http://host:port/ignite?cmd=getrep&key=repKey&val=newValue&cacheName=partionedCache&destId=8daab5ea-af83-4d91-99b6-77ed2ca06647
名称 | 类型 | 可选 | 描述 | 示例 |
---|---|---|---|---|
cmd | string | 否 | getrep,小写 | |
cacheName | string | 是 | 缓存名称,如果未提供,会使用默认的缓存 | partionedCache |
key | string | 否 | 缓存内要保存的键值 | name |
val | string | 否 | 与给定键关联的新值 | Jack |
destId | string | 是 | 要返回指标的节点Id | 8daab5ea-af83-4d91-99b6-77ed2ca06647 |
响应
{
"affinityNodeId": "1bcbac4b-3517-43ee-98d0-874b103ecf30",
"error": "",
"response": oldValue,
"successStatus": 0
}
名称 | 类型 | 描述 | 示例 |
---|---|---|---|
response | jsonObject | 给定键的原值 | {"name": "Bob"} |
# 4.19.repval
repval命令在之前的值等于预期值时会替换给定键的值。
请求
http://host:port/ignite?cmd=repval&key=repKey&val=newValue&val2=oldVal&cacheName=partionedCache&destId=8daab5ea-af83-4d91-99b6-77ed2ca06647
名称 | 类型 | 可选 | 描述 | 示例 |
---|---|---|---|---|
cmd | string | 否 | repval,小写 | |
cacheName | string | 是 | 缓存名称,如果未提供,会使用默认的缓存 | partionedCache |
key | string | 否 | 缓存内的键值 | name |
val | string | 否 | 与给定键对应的值 | Jack |
val2 | string | 否 | 预期值 | oldValue |
destId | string | 是 | 要返回指标的节点Id | 8daab5ea-af83-4d91-99b6-77ed2ca06647 |
响应
{
"affinityNodeId": "1bcbac4b-3517-43ee-98d0-874b103ecf30",
"error": "",
"response": true,
"successStatus": 0
}
名称 | 类型 | 描述 | 示例 |
---|---|---|---|
response | boolean | 如果替换发生则为true,否则false | true |
# 4.20.rmv
rmv命令在缓存中删除给定键对应的映射。
请求
http://host:port/ignite?cmd=rmv&key=rmvKey&cacheName=partionedCache&destId=8daab5ea-af83-4d91-99b6-77ed2ca06647
名称 | 类型 | 可选 | 描述 | 示例 |
---|---|---|---|---|
cmd | string | 否 | rmv,小写 | |
cacheName | string | 是 | 缓存名称,如果未提供,会使用默认的缓存 | partionedCache |
key | string | 否 | 缓存内要删除的键值 | name |
destId | string | 是 | 要返回指标的节点Id | 8daab5ea-af83-4d91-99b6-77ed2ca06647 |
响应
{
"affinityNodeId": "1bcbac4b-3517-43ee-98d0-874b103ecf30",
"error": "",
"response": true,
"successStatus": 0
}
名称 | 类型 | 描述 | 示例 |
---|---|---|---|
response | boolean | true,如果删除发生,否则,false | true |
# 4.21.rmvall
rmvall命令会从缓存中删除给定键的数据。
请求
http://host:port/ignite?cmd=rmvall&k1=rmKey1&k2=rmKey2&k3=rmKey3&cacheName=partionedCache&destId=8daab5ea-af83-4d91-99b6-77ed2ca06647
名称 | 类型 | 可选 | 描述 | 示例 |
---|---|---|---|---|
cmd | string | 否 | rmvall,小写 | |
cacheName | string | 是 | 缓存名称,如果未提供,会使用默认的缓存 | partionedCache |
k1...kN | string | 否 | 要从缓存中删除的键 | name |
destId | string | 是 | 要返回指标的节点Id | 8daab5ea-af83-4d91-99b6-77ed2ca06647 |
响应
{
"affinityNodeId": "1bcbac4b-3517-43ee-98d0-874b103ecf30",
"error": "",
"response": true,
"successStatus": 0
}
名称 | 类型 | 描述 | 示例 |
---|---|---|---|
response | boolean | 如果删除发生则为true,否则false | true |
# 4.22.rmvval
rmvval命令当当前值等于预期值时在缓存中删除给定键对应的映射。
请求
http://host:port/ignite?cmd=rmvval&key=rmvKey&val=rmvVal&cacheName=partionedCache&destId=8daab5ea-af83-4d91-99b6-77ed2ca06647
名称 | 类型 | 可选 | 描述 | 示例 |
---|---|---|---|---|
cmd | string | 否 | rmvval,小写 | |
cacheName | string | 是 | 缓存名称,如果未提供,会使用默认的缓存 | partionedCache |
key | string | 否 | 缓存内要删除的键值 | name |
val | string | 否 | 与给定键关联的期望值 | oldValue |
destId | string | 是 | 要返回指标的节点Id | 8daab5ea-af83-4d91-99b6-77ed2ca06647 |
响应
{
"affinityNodeId": "1bcbac4b-3517-43ee-98d0-874b103ecf30",
"error": "",
"response": true,
"successStatus": 0
}
名称 | 类型 | 描述 | 示例 |
---|---|---|---|
response | boolean | false,如果没有映射的键 | true |
# 4.23.add
add命令当缓存中不存在该映射时存储该映射。
请求
http://host:port/ignite?cmd=add&key=newKey&val=newValue&cacheName=partionedCache&destId=8daab5ea-af83-4d91-99b6-77ed2ca06647
名称 | 类型 | 可选 | 描述 | 示例 |
---|---|---|---|---|
cmd | string | 否 | add,小写 | |
cacheName | string | 是 | 缓存名称,如果未提供,会使用默认的缓存 | partionedCache |
key | string | 否 | 缓存内要存储的键值 | name |
val | string | 否 | 与给定键关联的值 | Jack |
destId | string | 是 | 要返回指标的节点Id | 8daab5ea-af83-4d91-99b6-77ed2ca06647 |
响应
{
"affinityNodeId": "1bcbac4b-3517-43ee-98d0-874b103ecf30",
"error": "",
"response": true,
"successStatus": 0
}
名称 | 类型 | 描述 | 示例 |
---|---|---|---|
response | boolean | true,如果成功存储,否则,false | true |
# 4.24.put
put命令在缓存中存储该映射。
请求
http://host:port/ignite?cmd=put&key=newKey&val=newValue&cacheName=partionedCache&destId=8daab5ea-af83-4d91-99b6-77ed2ca06647
名称 | 类型 | 可选 | 描述 | 示例 |
---|---|---|---|---|
cmd | string | 否 | put,小写 | |
cacheName | string | 是 | 缓存名称,如果未提供,会使用默认的缓存 | partionedCache |
key | string | 否 | 缓存内要存储的键值 | name |
val | string | 否 | 与给定键关联的值 | Jack |
destId | string | 是 | 要返回指标的节点Id | 8daab5ea-af83-4d91-99b6-77ed2ca06647 |
响应
{
"affinityNodeId": "1bcbac4b-3517-43ee-98d0-874b103ecf30",
"error": "",
"response": true,
"successStatus": 0
}
名称 | 类型 | 描述 | 示例 |
---|---|---|---|
response | boolean | true,如果成功存储,否则,false | true |
# 4.25.putall
putall命令会在缓存中存储给定的键-值对。
请求
http://host:port/ignite?cmd=putall&k1=putKey1&k2=putKey2&k3=putKey3&v1=value1&v2=value2&v3=value3&cacheName=partionedCache&destId=8daab5ea-af83-4d91-99b6-77ed2ca06647
名称 | 类型 | 可选 | 描述 | 示例 |
---|---|---|---|---|
cmd | string | 否 | putall,小写 | |
cacheName | string | 是 | 缓存名称,如果未提供,会使用默认的缓存 | partionedCache |
k1...kN | string | 否 | 要在缓存中保存的键 | name |
v1...vN | string | 否 | 与给定键关联的值 | Jack |
destId | string | 是 | 要返回指标的节点Id | 8daab5ea-af83-4d91-99b6-77ed2ca06647 |
响应
{
"affinityNodeId": "1bcbac4b-3517-43ee-98d0-874b103ecf30",
"error": "",
"response": true,
"successStatus": 0
}
名称 | 类型 | 描述 | 示例 |
---|---|---|---|
response | boolean | 如果成功保存则为true,否则false | true |
# 4.26.putifabs
putifabs命令只有在缓存中存在该映射时才会存储给定的键-值对。
请求
http://host:port/ignite?cmd=putifabs&key=getKey&val=newVal&cacheName=partionedCache
名称 | 类型 | 可选 | 描述 | 示例 |
---|---|---|---|---|
cmd | string | 否 | putifabs,小写 | |
cacheName | string | 是 | 缓存名称,如果未提供,会使用默认的缓存 | partionedCache |
key | string | 否 | 缓存内要存储的键 | name |
val | string | 否 | 与给定键关联的值 | Jack |
destId | string | 是 | 要返回指标的节点Id | 8daab5ea-af83-4d91-99b6-77ed2ca06647 |
响应
{
"affinityNodeId": "2bd7b049-3fa0-4c44-9a6d-b5c7a597ce37",
"error": "",
"response": true,
"successStatus": 0
}
名称 | 类型 | 描述 | 示例 |
---|---|---|---|
response | boolean | 成功存储则为true ,否则为false | true |
# 4.27.conkey
conkey命令在缓存中检测是否有给定键对应的条目。
请求
http://host:port/ignite?cmd=conkey&key=getKey&cacheName=partionedCache
名称 | 类型 | 可选 | 描述 | 示例 |
---|---|---|---|---|
cmd | string | 否 | conkey,小写 | |
cacheName | string | 是 | 缓存名称,如果未提供,会使用默认的缓存 | partionedCache |
key | string | 否 | 在缓存中检测是否存在的键 | testKey |
destId | string | 是 | 要返回指标的节点Id | 8daab5ea-af83-4d91-99b6-77ed2ca06647 |
响应
{
"affinityNodeId": "2bd7b049-3fa0-4c44-9a6d-b5c7a597ce37",
"error": "",
"response": true,
"successStatus": 0
}
名称 | 类型 | 描述 | 示例 |
---|---|---|---|
response | boolean | 存在给定键对应的映射则为true | true |
# 4.28.conkeys
conkeys命令在缓存中检测是否有给定键对应的条目。
请求
http://host:port/ignite?cmd=conkeys&k1=getKey1&k2=getKey2&k3=getKey3&cacheName=partionedCache
名称 | 类型 | 可选 | 描述 | 示例 |
---|---|---|---|---|
cmd | string | 否 | rmvall,小写 | |
cacheName | string | 是 | 缓存名称,如果未提供,会使用默认的缓存 | partionedCache |
k1...kN | string | 否 | 在缓存中检测是否存在的键 | key1, key2, ..., keyN |
destId | string | 是 | 要返回指标的节点Id | 8daab5ea-af83-4d91-99b6-77ed2ca06647 |
响应
{
"affinityNodeId": "2bd7b049-3fa0-4c44-9a6d-b5c7a597ce37",
"error": "",
"response": true,
"successStatus": 0
}
名称 | 类型 | 描述 | 示例 |
---|---|---|---|
response | boolean | 存在给定键对应的映射则为true | true |
# 4.29.getorcreate
getorcreate命令如果不存在给定名字的缓存,则会进行缓存的创建。
请求
http://host:port/ignite?cmd=getorcreate&cacheName=myPartionedCache
名称 | 类型 | 可选 | 描述 |
---|---|---|---|
cmd | string | 否 | getorcreate,小写 |
cacheName | string | 是 | 缓存名称,如果未提供,会使用默认的缓存 |
backups | int | 是 | 缓存数据的备份数量,默认值为0 |
dataRegion | string | 是 | 缓存所属的内存区的名字 |
templateName | string | 是 | Ignite中注册的用作缓存配置的缓存模板名,具体可以看缓存模板 |
cacheGroup | string | 是 | 缓存所属的缓存组名 |
writeSynchronizationMode | string | 是 | 配置缓存的写同步模式:FULL_SYNC 、FULL_ASYNC 和PRIMARY_SYNC |
响应
{
"error": "",
"response": null,
"successStatus": 0
}
# 4.30.destcache
destcache命令删除给定名字的缓存。
请求
http://host:port/ignite?cmd=destcache&cacheName=partionedCache
名称 | 类型 | 可选 | 描述 | 示例 |
---|---|---|---|---|
cmd | string | 否 | destcache,小写 | |
cacheName | string | 是 | 缓存名称,如果未提供,会使用默认的缓存 | partionedCache |
响应
{
"error": "",
"response": null,
"successStatus": 0
}
# 4.31.node
node命令获取一个节点的信息。
请求
http://host:port/ignite?cmd=node&attr=true&mtr=true&id=c981d2a1-878b-4c67-96f6-70f93a4cd241
名称 | 类型 | 可选 | 描述 | 示例 |
---|---|---|---|---|
cmd | string | 否 | node,小写 | |
mtr | boolean | 是 | 如果为true,返回值会包含指标信息 | true |
attr | boolean | 是 | 如果为true,返回值会包含属性信息 | true |
ip | string | 是 | 如果传递了id参数该参数是可选的。返回值包含了指定IP对应的节点信息 | 192.168.0.1 |
id | string | 是 | 如果传递了ip参数该参数为可选的。返回值包含了指定节点id对应的节点信息 | 8daab5ea-af83-4d91-99b6-77ed2ca06647 |
caches | boolean | 是 | 如果配置为true ,node 返回的缓存信息会包括:缓存名、缓存模式和SQL模式。如果配置为false ,node 命令的返回结果不包含任何缓存信息,默认值为true 。 | true |
响应
{
"error": "",
"response": {
"attributes": null,
"caches": {},
"consistentId": "127.0.0.1:47500",
"defaultCacheMode": "REPLICATED",
"metrics": null,
"nodeId": "2d0d6510-6fed-4fa3-b813-20f83ac4a1a9",
"replicaCount": 128,
"tcpAddresses": ["127.0.0.1"],
"tcpHostNames": [""],
"tcpPort": 11211
},
"successStatus": 0
}
# 4.32.log
log命令显示服务器的日志。
请求
http://host:port/ignite?cmd=log&from=10&to=100&path=/var/log/ignite.log
名称 | 类型 | 可选 | 描述 | 示例 |
---|---|---|---|---|
cmd | string | 否 | log,小写 | |
from | integer | 是 | 开始的行号,如果传入了to参数,该参数为必须 | 0 |
path | string | 是 | 日志文件的路径,如果未提供会使用默认值 | /log/cache_server.log |
to | integer | 是 | 结束的行号,如果传入了from参数,该参数为必须 | 1000 |
响应
{
"error": "",
"response": ["[14:01:56,626][INFO ][test-runner][GridDiscoveryManager] Topology snapshot [ver=1, nodes=1, CPUs=8, heap=1.8GB]"],
"successStatus": 0
}
# 4.33.top
top命令获取一个拓扑的信息。
请求
http://host:port/ignite?cmd=top&attr=true&mtr=true&id=c981d2a1-878b-4c67-96f6-70f93a4cd241
名称 | 类型 | 可选 | 描述 | 示例 |
---|---|---|---|---|
cmd | string | 否 | top,小写 | |
mtr | boolean | 是 | 如果为true,返回值会包含指标信息 | true |
attr | boolean | 是 | 如果为true,返回值会包含属性信息 | true |
ip | string | 是 | 如果传递了id参数该参数是可选的。返回值包含了指定IP对应的节点信息 | 192.168.0.1 |
id | string | 是 | 如果传递了ip参数该参数为可选的。返回值包含了指定节点id对应的节点信息 | 8daab5ea-af83-4d91-99b6-77ed2ca06647 |
caches | boolean | 是 | 如果配置为true ,top 返回的缓存信息会包括:缓存名、缓存模式和SQL模式。如果配置为false ,top 命令的返回结果不包含任何缓存信息,默认值为true 。 | true |
响应
{
"error": "",
"response": [
{
"attributes": {
...
},
"caches": [
{
name: "",
mode: "PARTITIONED"
},
{
name: "partionedCache",
mode: "PARTITIONED",
sqlSchema: "partionedCache"
}
],
"consistentId": "127.0.0.1:47500",
"metrics": {
...
},
"nodeId": "96baebd6-dedc-4a68-84fd-f804ee1ed995",
"replicaCount": 128,
"tcpAddresses": ["127.0.0.1"],
"tcpHostNames": [""],
"tcpPort": 11211
},
{
"attributes": {
...
},
"caches": [
{
name: "",
mode: "REPLICATED"
}
],
"consistentId": "127.0.0.1:47501",
"metrics": {
...
},
"nodeId": "2bd7b049-3fa0-4c44-9a6d-b5c7a597ce37",
"replicaCount": 128,
"tcpAddresses": ["127.0.0.1"],
"tcpHostNames": [""],
"tcpPort": 11212
}
],
"successStatus": 0
}
# 4.34.exe
exe命令在集群中执行给定的任务。
请求
http://host:port/ignite?cmd=exe&name=taskName&p1=param1&p2=param2&async=true
名称 | 类型 | 可选 | 描述 | 示例 |
---|---|---|---|---|
cmd | string | 否 | exe,小写 | |
name | string | 否 | 要执行的任务名 | summ |
p1...pN | string | 是 | 任务执行的参数 | arg1...argN |
async | boolean | 是 | 任务异步执行的标志 | true |
响应
响应中包含了与错误有关的信息,任务的唯一标识,计算的结果和状态。
{
"error": "",
"response": {
"error": "",
"finished": true,
"id": "~ee2d1688-2605-4613-8a57-6615a8cbcd1b",
"result": 4
},
"successStatus": 0
}
# 4.35.res
res命令获取指定任务的计算结果。
请求
http://host:port/ignite?cmd=res&id=8daab5ea-af83-4d91-99b6-77ed2ca06647
名称 | 类型 | 可选 | 描述 | 示例 |
---|---|---|---|---|
cmd | string | 否 | res,小写 | |
id | string | 否 | 要返回结果的任务id | 69ad0c48941-4689aae0-6b0e-4d52-8758-ce8fe26f497d~4689aae0-6b0e-4d52-8758-ce8fe26f497d |
响应
响应中包含了与错误有关的信息,任务的唯一标识,计算的结果和状态。
{
"error": "",
"response": {
"error": "",
"finished": true,
"id": "69ad0c48941-4689aae0-6b0e-4d52-8758-ce8fe26f497d~4689aae0-6b0e-4d52-8758-ce8fe26f497d",
"result": 4
},
"successStatus": 0
}
# 4.36.qryexe
qryexe命令在缓存中执行指定的查询。
请求
http://host:port/ignite?cmd=qryexe&type=Person&pageSize=10&cacheName=Person&arg1=1000&arg2=2000&qry=salary+%3E+%3F+and+salary+%3C%3D+%3F
名称 | 类型 | 可选 | 描述 | 示例 |
---|---|---|---|---|
cmd | string | 否 | qryexe,小写 | |
type | string | 否 | 要查询的类型 | String |
pageSize | number | 否 | 查询的每页大小 | 3 |
cacheName | string | 是 | 缓存名称,如果未提供则使用默认的缓存 | testCache |
arg1...argN | string | 否 | 查询的参数 | 1000,2000 |
qry | string | 否 | 编码后的sql | salary+%3E+%3F+and+salary+%3C%3D+%3F |
响应
响应中包含了查询的结果集,字段查询的元数据,最后页的标识以及查询的id。
{
"error":"",
"response":{
"fieldsMetadata":[],
"items":[
{"key":3,"value":{"name":"Jane","id":3,"salary":2000}},
{"key":0,"value":{"name":"John","id":0,"salary":2000}}],
"last":true,
"queryId":0},
"successStatus":0
}
# 4.37.qryfldexe
qryfldexe命令在缓存中执行指定的有字段的查询。
请求
http://host:port/ignite?cmd=qryfldexe&pageSize=10&cacheName=Person&qry=select+firstName%2C+lastName+from+Person
名称 | 类型 | 可选 | 描述 | 示例 |
---|---|---|---|---|
cmd | string | 否 | qryfldexe,小写 | |
pageSize | number | 否 | 查询的每页大小 | 3 |
cacheName | string | 是 | 缓存名称,如果未提供则使用默认的缓存 | testCache |
arg1...argN | string | 否 | 查询的参数 | 1000,2000 |
qry | string | 否 | 编码后的sql | select+firstName%2C+lastName+from+Person |
响应
响应中包含了查询的结果集,字段查询的元数据,最后页的标识以及查询的id。
{
"error":"",
"response":{
"fieldsMetadata":[{"fieldName":"FIRSTNAME", "fieldTypeName":"java.lang.String", "schemaName":"person", "typeName":"PERSON"},{"fieldName":"LASTNAME","fieldTypeName":"java.lang.String","schemaName":"person","typeName":"PERSON"}],
"items":[["Jane","Doe"],["John","Doe"]],
"last":true,
"queryId":0
},
"successStatus":0}
# 4.38.qryscanexe
qryscanexe命令在缓存中执行扫描查询。
请求
http://host:port/ignite?cmd=qryscanexe&pageSize=10&cacheName=Person&className=org.apache.ignite.filters.PersonPredicate
名称 | 类型 | 可选 | 描述 | 示例 |
---|---|---|---|---|
cmd | string | 否 | qryscanexe,小写 | |
pageSize | number | 否 | 查询的每页大小 | 3 |
cacheName | string | 是 | 缓存名称,如果未提供,会使用默认的缓存 | testCache |
className | string | 是 | 扫描查询的谓词类名,应该实现IgniteBiPredicate 接口 | org.apache.ignite.filters.PersonPredicate |
响应
响应中包含了扫描查询的结果集,字段查询的元数据,最后页的标识以及查询的id。
{
"error": "",
"response": {
"fieldsMetadata": [
{
"fieldName": "key",
"fieldTypeName": "",
"schemaName": "",
"typeName": ""
},
{
"fieldName": "value",
"fieldTypeName": "",
"schemaName": "",
"typeName": ""
}
],
"items": [
{
"key": 1,
"value": {
"firstName": "Jane",
"id": 1,
"lastName": "Doe",
"salary": 1000
}
},
{
"key": 3,
"value": {
"firstName": "Jane",
"id": 3,
"lastName": "Smith",
"salary": 2000
}
}
],
"last": true,
"queryId": 0
},
"successStatus": 0
}
# 4.39.qryfetch
qryfetch命令获取指定查询的下一页数据。
请求
http://host:port/ignite?cmd=qryfetch&pageSize=10&qryId=5
名称 | 类型 | 可选 | 描述 | 示例 |
---|---|---|---|---|
cmd | string | 否 | qryfetch,小写 | |
pageSize | number | 否 | 查询的每页大小 | 3 |
qryId | number | 否 | qryexe,qryfldexe,qryfetch命令执行返回的查询id | 0 |
响应
响应中包含了查询的结果集,最后页的标识以及查询的id。
{
"error":"",
"response":{
"fieldsMetadata":[],
"items":[["Jane","Doe"],["John","Doe"]],
"last":true,
"queryId":0
},
"successStatus":0}
# 4.40.qrycls
qrycls命令关闭查询占用的资源。
请求
http://host:port/ignite?cmd=qrycls&qryId=5
名称 | 类型 | 可选 | 描述 | 示例 |
---|---|---|---|---|
cmd | string | 否 | qrycls,小写 | |
qryId | number | 否 | qryexe,qryfldexe,qryfetch命令执行返回的查询id | 0 |
响应
如果成功关闭则返回true
。
{
"error":"",
"response":true,
"successStatus":0
}
18624049226
← Ignite分布式锁 Ignite.NET →