@liyuj
2017-01-26T16:20:11.000000Z
字数 28024
阅读 5978
Apache-Ignite-1.8.0-中文开发手册
Ignite为主要的语言和技术,以原生库的形式提供了一套API,包括Java,.NET和C++,还支持包括REST、Memcached以及Redis在内的多种协议。
Ignite提供了一个HTTP REST客户端,可以以REST的方式通过HTTP或者HTTPS协议与集群进行通信。REST API可以用于执行不同的操作,比如从/对缓存的读/写,执行任务,获取各种指标等等。
在内部,Ignite使用Jetty来提供HTTP服务的功能,HTTP REST客户端可以使用ConnectorConfiguration进行配置。
HTTP REST请求返回一个JSON对象,每一个命令都有一个类似的结构,这个对象有如下的结构:
名字 | 类型 | 描述 | 示例 |
---|---|---|---|
affinityNodeId | string | 关联节点ID | 2bd7b049-3fa0-4c44-9a6d-b5c7a597ce37 |
error | string | 如果服务器无法处理请求,出现的错误的描述 | 每个命令单独指定 |
response | jsonObject | 包含命令执行结果的字段 | 每个命令单独指定 |
successStatus | Integer | 返回状态码: 成功:0 失败:1 授权失败:2 安全检查失败:3 |
0 |
log命令显示服务器的日志。
URL:
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
}
名称 | 类型 | 描述 | 示例 |
---|---|---|---|
response | string | 日志 | ["[14:01:56,626][INFO ][test-runner][GridDiscoveryManager] Topology snapshot [ver=1, nodes=1, CPUs=8, heap=1.8GB]"] |
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 |
decr命令减去然后获得给定原子性Long类型的当前值。
URL:
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
}
名称 | 类型 | 描述 | 示例 |
---|---|---|---|
response | long | 操作之后的值 | -42 |
incr命令增加然后获得给定原子性Long类型的当前值。
URL:
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
}
名称 | 类型 | 描述 | 示例 |
---|---|---|---|
response | long | 操作之后的值 | 42 |
cache命令可以获得Ignite缓存的指标。
URL:
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
}|
cas命令在之前的值等于预期值时会在缓存中存储给定的键值对。
URL:
http://host:port/ignite?cmd=cas&key=casKey&val2=casOldVal&val1=casNewVal&cacheName=partionedCache&destId=8daab5ea-af83-4d91-99b6-77ed2ca06647
请求参数
名称 | 类型 | 可选 | 描述 | 示例 |
---|---|---|---|---|
cmd | string | 否 | cas,小写 | |
cacheName | string | 是 | 缓存名称,如果未提供,会使用默认的缓存 | partionedCache |
key | string | 否 | 缓存内要保存的键值 | name |
val | string | 否 | 与给定键对应的值 | Jack |
val2 | string | 否 | 预期值 | Bob |
destId | string | 是 | 要返回指标的节点Id | 8daab5ea-af83-4d91-99b6-77ed2ca06647 |
返回值示例
{
"affinityNodeId": "1bcbac4b-3517-43ee-98d0-874b103ecf30",
"error": "",
"response": true,
"successStatus": 0
}
名称 | 类型 | 描述 | 示例 |
---|---|---|---|
response | boolean | 如果替换发生则为true,否则false | true |
prepend命令为给定的键关联的值增加一个前缀。
URL:
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 |
append命令为给定的键关联的值增加一个后缀。
URL:
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 |
rep命令为给定的键存储一个新值。
URL:
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 |
返回值示例
{
"affinityNodeId": "1bcbac4b-3517-43ee-98d0-874b103ecf30",
"error": "",
"response": true,
"successStatus": 0
}
名称 | 类型 | 描述 | 示例 |
---|---|---|---|
response | boolean | 如果替换发生则为true,否则false | true |
getrep命令为给定的键存储一个新值,然后返回原值。
URL:
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"} |
repval命令在之前的值等于预期值时会替换给定键的值。
URL:
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 |
rmvall命令会从缓存中删除给定键的数据。
URL:
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 |
rmvval命令当当前值等于预期值时在缓存中删除给定键对应的映射。
URL:
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 |
rmv命令在缓存中删除给定键对应的映射。
URL:
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 |
getrmv命令在缓存中删除给定键的映射,然后返回原值。
URL:
http://host:port/ignite?cmd=getrmv&cacheName=partionedCache&destId=8daab5ea-af83-4d91-99b6-77ed2ca06647
请求参数
名称 | 类型 | 可选 | 描述 | 示例 |
---|---|---|---|---|
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"} |
add命令当缓存中不存在该映射时存储该映射。
URL:
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 |
putall命令会在缓存中存储给定的键值对。
URL:
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 |
put命令在缓存中存储该映射。
URL:
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 |
getall命令会从缓存中获取给定键的数据。
URL:
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"} |
get命令在缓存中获取给定的键对应的值。
URL:
http://host:port/ignite?cmd=get&key=getKey&cacheName=partionedCache&destId=8daab5ea-af83-4d91-99b6-77ed2ca06647
请求参数
名称 | 类型 | 可选 | 描述 | 示例 |
---|---|---|---|---|
cmd | string | 否 | get,小写 | |
cacheName | string | 是 | 缓存名称,如果未提供,会使用默认的缓存 | partionedCache |
key | string | 否 | 要返回的值对应的键 | testKey |
destId | string | 是 | 要返回指标的节点Id | 8daab5ea-af83-4d91-99b6-77ed2ca06647 |
返回值示例
{
"affinityNodeId": "2bd7b049-3fa0-4c44-9a6d-b5c7a597ce37",
"error": "",
"response": "value",
"successStatus": 0
}
名称 | 类型 | 描述 | 示例 |
---|---|---|---|
response | jsonObject | 给定键的值 | {"name": "Bob"} |
conkey命令在缓存中检测是否有给定键对应的条目。
URL:
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 |
conkeys命令在缓存中检测是否有给定键对应的条目。
URL:
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 |
getput命令在缓存中存储给定的键值对,如果之前存在该映射的话则返回原值。
URL:
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": "value",
"successStatus": 0
}
名称 | 类型 | 描述 | 示例 |
---|---|---|---|
response | jsonObject | 给定键的原值 | {"name": "bob"} |
putifabs命令只有在缓存中存在该映射的话才会存储给定的键值对。
URL:
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 | true |
getputifabs命令只有在缓存中不存在该映射时才会进行存储,否则会返回对应该键的原值。
URL:
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"} |
size命令返回指定缓存的总条目的数量。
URL:
http://host:port/ignite?cmd=size&cacheName=partionedCache
请求参数
名称 | 类型 | 可选 | 描述 | 示例 |
---|---|---|---|---|
cmd | string | 否 | size,小写 | |
cacheName | string | 是 | 缓存名称,如果未提供,会使用默认的缓存 | partionedCache |
返回值示例
{
"affinityNodeId": "",
"error": "",
"response": 1,
"successStatus": 0
}
名称 | 类型 | 描述 | 示例 |
---|---|---|---|
response | number | 给定缓存的总条目数量 | 5 |
getorcreate命令如果不存在的话会创建给定名字的缓存。
URL:
http://host:port/ignite?cmd=getorcreate&cacheName=partionedCache
请求参数
名称 | 类型 | 可选 | 描述 | 示例 |
---|---|---|---|---|
cmd | string | 否 | getorcreate,小写 | |
cacheName | string | 是 | 缓存名称,如果未提供,会使用默认的缓存 | partionedCache |
返回值示例
{
"error": "",
"response": null,
"successStatus": 0
}
destcache命令删除给定名字的缓存。
URL:
http://host:port/ignite?cmd=destcache&cacheName=partionedCache
请求参数
名称 | 类型 | 可选 | 描述 | 示例 |
---|---|---|---|---|
cmd | string | 否 | destcache,小写 | |
cacheName | string | 是 | 缓存名称,如果未提供,会使用默认的缓存 | partionedCache |
返回值示例
{
"error": "",
"response": null,
"successStatus": 0
}
node命令获取一个节点的信息。
URL:
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 |
返回值示例
{
"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
}
名称 | 类型 | 描述 | 示例 |
---|---|---|---|
response | jsonObject | 一个节点的信息 | {"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} |
top命令获取一个网络拓扑的信息。
URL:
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 |
返回值示例
{
"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
}
名称 | 类型 | 描述 | 示例 |
---|---|---|---|
response | jsonObject | 一个网络拓扑的信息 | [{"attributes": {...},"caches": [{name: "",mode: "PARTITIONED"},{name: "partionedCache",mode: "PARTITIONED",sqlSchema: "partionedCache"}],"consistentId": "127.0.0.1:47500","REPLICATED","metrics": {...},"nodeId": "96baebd6-dedc-4a68-84fd-f804ee1ed995",..."tcpPort": 11211},{"attributes": {...},"caches": [{name: "",mode: "REPLICATED"}],"consistentId": "127.0.0.1:47501","metrics": {...},"nodeId": "2bd7b049-3fa0-4c44-9a6d-b5c7a597ce37",..."tcpPort": 11212}] |
exe命令在集群中执行给定的任务。
URL:
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
}
名称 | 类型 | 描述 | 示例 |
---|---|---|---|
response | jsonObject | JSON对象,包含了与错误有关的信息,任务的唯一标识,计算的结果和状态 | {"error": "","finished": true,"id":"~ee2d1688-2605-4613-8a57-6615a8cbcd1b","result": 4} |
res命令获取指定任务的计算结果。
URL:
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
}
名称 | 类型 | 描述 | 示例 |
---|---|---|---|
response | jsonObject | JSON对象,包含了与错误有关的信息,任务的唯一标识,计算的结果和状态 | {"error": "","finished": true,"id":"~ee2d1688-2605-4613-8a57-6615a8cbcd1b","result": 4} |
qryexe命令在缓存中执行指定的查询。
URL:
http://host:port/ignite?cmd=qryexe&type=Person&pageSize=10&cacheName=Person&arg1=1000&arg2=2000qry=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 |
返回值示例
{
"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
}
名称 | 类型 | 描述 | 示例 |
---|---|---|---|
response | jsonObject | JSON对象,包含了查询的结果集,最后页的标识以及查询的id | {"fieldsMetadata":[],"items":[{"key":3,"value":{"name":"Jane","id":3,salary":2000}},{"key":0,"value":{"name":"John","id":0,"salary":2000}}],"last":true,"queryId":0} |
qryfldexe命令在缓存中执行指定的有字段的查询。
URL:
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 |
返回值示例
{
"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}
名称 | 类型 | 描述 | 示例 |
---|---|---|---|
response | jsonObject | JSON对象,包含了查询的结果集,字段查询的元数据,最后页的标识以及查询的id | {"fieldsMetadata":[{"fieldName":"FIRSTNAME","fieldTypeName":"java.lang.String","schemaName":"person","typeName":"PERSON"},...],"items":[["Jane","Doe"],["John","Doe"]],"last":true,"queryId":0} |
qryfetch命令获取指定查询的下一页数据。
URL:
http://host:port/ignite?cmd=qryfetch&pageSize=10&qryId=5
请求参数
名称 | 类型 | 可选 | 描述 | 示例 |
---|---|---|---|---|
cmd | string | 否 | qryfetch,小写 | |
pageSize | number | 否 | 查询的每页大小 | 3 |
qryId | number | 否 | qryexe,qryfldexe,qryfetch命令执行返回的查询id | 0 |
返回值示例
{
"error":"",
"response":{
"fieldsMetadata":[],
"items":[["Jane","Doe"],["John","Doe"]],
"last":true,
"queryId":0
},
"successStatus":0}
名称 | 类型 | 描述 | 示例 |
---|---|---|---|
response | jsonObject | JSON对象,包含了查询的结果集,最后页的标识以及查询的id | {"fieldsMetadata":[],"items":[["Jane","Doe"],["John","Doe"]],"last":true,"queryId":0} |
qrycls命令关闭查询占用的资源。
URL:
http://host:port/ignite?cmd=qrycls&qryId=5
请求参数
名称 | 类型 | 可选 | 描述 | 示例 |
---|---|---|---|---|
cmd | string | 否 | qrycls,小写 | |
qryId | number | 否 | qryexe,qryfldexe,qryfetch命令执行返回的查询id | 0 |
返回值示例
{
"error":"",
"response":true,
"successStatus":0
}
名称 | 类型 | 描述 | 示例 |
---|---|---|---|
response | boolean | 如果成功关闭则为true | true |
metadata命令返回指定缓存的元数据。
URL:
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
}
名称 | 类型 | 描述 | 示例 |
---|---|---|---|
response | jsonObject | 给定缓存的元数据 | {"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}]}} |
qryscanexe命令在缓存中执行SQL扫描查询。
URL:
http://host:port/ignite?cmd=qryscanexe&pageSize=10&cacheName=Person&className=org.apache.ignite.schema.Person
请求参数
名称 | 类型 | 可选 | 描述 | 示例 |
---|---|---|---|---|
cmd | string | 否 | qryscanexe,小写 | |
pageSize | number | 否 | 查询的每页大小 | 3 |
cacheName | string | 是 | 缓存名称,如果未提供,会使用默认的缓存 | testCache |
className | string | 是 | 扫描查询的类名 | org.apache.ignite.schema.Person |
返回值示例
{
"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
}
名称 | 类型 | 描述 | 示例 |
---|---|---|---|
response | jsonObject | JSON对象,包含了扫描查询的结果集,字段查询的元数据,最后页的标识以及查询的id | {"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} |
参数名 | 描述 | 可选 | 默认值 |
---|---|---|---|
setSecretKey(String) | 定义了用于客户端认证的密钥,如果提供,客户端请求必须包含BASE64编码的"[1];[2]"哈希的"X-Signature"HTTP头,这里[1]是以毫秒为单位的时间戳,[2]是密钥 | 是 | 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 |
<?xml version="1.0"?>
<!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>
Ignite支持Memcached协议,可以通过任何Memcached兼容客户端从Ignite缓存中存储和获取分布化的数据。
当前,Ignite只支持Memcached的二进制协议。
可以通过如下语言的Memcached客户端连接到Ignite:
要使用PHP客户端通过Memcached连接到Ignite,首先要下载Ignite,然后:
bin/ignite.sh examples/config/example-cache.xml
// Create client instance.
$client = new Memcached();
// Set localhost and port (set to correct values).
$client->addServer("localhost", 11211);
// Force client to use binary protocol.
$client->setOption(Memcached::OPT_BINARY_PROTOCOL, true);
// Put entry to cache.
if ($client->add("key", "val"))
echo "Successfully put entry in cache.\n";
// Check entry value.
echo("Value for 'key': " . $client->get("key") . "\n");
要使用Java客户端通过Memcached连接到Ignite,首先要下载Ignite,然后:
bin/ignite.sh examples/config/example-cache.xml
MemcachedClient client = null;
try {
client = new MemcachedClient(new BinaryConnectionFactory(),
AddrUtil.getAddresses("localhost:11211"));
} catch (IOException e) {
e.printStackTrace();
}
client.set("key", 0, "val");
System.out.println("Value for 'key': " + client.get("key"));
要使用Python客户端通过Memcached连接到Ignite,首先要下载Ignite,然后:
bin/ignite.sh examples/config/example-cache.xml
import pylibmc
client = memcache.Client(["127.0.0.1:11211", binary=True])
client.set("key", "val")
print "Value for 'key': %s" %
client.get("key")
要使用Ruby客户端通过Memcached连接到Ignite,首先要下载Ignite,然后:
bin/ignite.sh examples/config/example-cache.xml
require 'dalli'
options = { :namespace => "app_v1", :compress => true }
client = Dalli::Client.new('localhost:11211', options)
client.set('key', 'value')
value = client.get('key')
Ignite实现了对Redis的部分兼容,可以使用任何Redis兼容客户端在缓存中存储以及获取分布化的数据。
从1.8.0版本开始,Ignite客户端支持如下的命令:
集群节点通过监听特定的端口来接收Redis请求,每个Ignite节点默认都会通过监听[host]:11211
来接收请求,通过ConnectorConfiguration
可以覆写主机和端口:
<bean class="org.apache.ignite.configuration.IgniteConfiguration">
...
<property name="connectorConfiguration">
<bean class="org.apache.ignite.configuration.ConnectorConfiguration">
<property name="host" value="localhost"/>
<property name="port" value="6379"/>
</bean>
</property>
</bean>
Redis中,数据库是用一个整型值来标识的,而不是用数据库名。因此,目前无法使用名字在缓存间进行切换,只能在默认的缓存中的条目间进行切换。
可以使用自己喜欢的Redis客户端接入Ignite,下面是是用几种语言的简单示例:
要使用Redis的java客户端接入Ignite,需要先配置并启动一个Ignite集群。
要接入使用6379
端口的Ignite,以Jedis为例:
JedisPoolConfig jedisPoolCfg = new JedisPoolConfig();
// your pool configurations.
JedisPool pool = new JedisPool(jedisPoolCfg, "localhost", 6379, 10000);
try (Jedis jedis = pool.getResource()) {
jedis.set("key1", "1");
System.out.println("Value for 'key1': " + jedis.get("key1"));
}
pool.destroy();
要使用Redis的Python客户端接入Ignite,需要先配置并启动一个Ignite集群。
要接入使用6379
端口的Ignite,以redis-py为例:
>>> import redis
>>> r = redis.StrictRedis(host='localhost', port=6379, db=0)
>>> r.set('k1', 1)
True
>>> r.get('k1')
'1'
要使用Redis的PHP客户端接入Ignite,需要先配置并启动一个Ignite集群。
要接入使用6379
端口的Ignite,以predis为例:
// Load the library.
require 'predis/autoload.php';
Predis\Autoloader::register();
// Connect.
try {
$redis = new Predis\Client();
echo ">>> Successfully connected to Redis. \n";
// Put entry to cache.
if ($redis->set('k1', '1'))
echo ">>> Successfully put entry in cache. \n";
// Check entry value.
echo(">>> Value for 'k1': " . $redis->get('k1') . "\n");
}
catch (Exception $e) {
echo "Couldn't connected to Redis";
echo $e->getMessage();
}