@liyuj
2017-09-30T03:41:24.000000Z
字数 28523
阅读 7150
Apache-Ignite-2.2.0-中文开发手册
Ignite为主要的语言和技术,以原生库的形式提供了一套API,包括Java,.NET和C++,还支持包括REST、Memcached以及Redis在内的多种协议。
Ignite提供了一个HTTP REST客户端,可以以REST的方式通过HTTP或者HTTPS协议与集群进行通信。REST API可以用于执行不同的操作,比如从/对缓存的读/写,执行任务,获取各种指标等等。
要启用HTTP连接,确保在类路径中包含ignite-rest-http模块,在二进制发行版中,这意味着将libs\optional\ignite-rest-http拷贝到libs\ignite-rest-http中。
不需要显式地进行配置,连接器就会自动启动,然后监听8080端口,可以通过curl检测其是否工作正常。
curl http://localhost:8080/ignite?cmd=version
在内部,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) |
定义用于客户端认证的密钥,如果进行了设定,客户端请求必须包含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 |
配置文件的路径需要通过上面描述的ConnectorConfiguration.setJettyPath(String)进行设定。
<?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 pylibmcclient = 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兼容客户端在缓存中存储以及获取分布化的数据。
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-ignite-internal-cache-0缓存,用于默认的Redis数据库,当切换到SELECT命令时也可以用做其他数据库的模板。
可以使用自己喜欢的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();}