135.3. 将缓存制作者 - 映射到("hazelcast-map:foo")
如果要在映射中存储值,您可以使用映射缓存制作者。
映射缓存制作者提供由 CamelHazelcastOperationType 标头指定的后续操作:
- put
- putIfAbsent
- get
- getAll
- keySet
- containsKey
- containsValue
- delete
- update
- query
- clear
- Evict
- evictAll
所有操作都在 "hazelcast.operation.type" 标头变量内提供。在 Java DSL 中,您可以使用 org.apache.camel.component.hazelcast.HazelcastOperation
中的常量。
请求消息的标头变量:
名称 | 类型 | 描述 |
---|---|---|
|
| 如已描述。 |
|
| 在缓存中存储 / 的对象 id (不需要查询操作) |
放置 和放置IfAbsent 操作提供驱除机制:
名称 | 类型 | 描述 |
---|---|---|
|
| TTL 的值。 |
|
| 时间单位的值(DAYS / HOURS / MINUTES / …. |
您可以使用以下方法调用示例:
template.sendBodyAndHeader("direct:[put|get|update|delete|query|evict]", "my-foo", HazelcastConstants.OBJECT_ID, "4711");
template.sendBodyAndHeader("direct:[put|get|update|delete|query|evict]", "my-foo", HazelcastConstants.OBJECT_ID, "4711");
135.3.1. 放置 的示例: 复制链接链接已复制到粘贴板!
Java DSL:
from("direct:put") .setHeader(HazelcastConstants.OPERATION, constant(HazelcastOperation.PUT)) .toF("hazelcast-%sfoo", HazelcastConstants.MAP_PREFIX);
from("direct:put")
.setHeader(HazelcastConstants.OPERATION, constant(HazelcastOperation.PUT))
.toF("hazelcast-%sfoo", HazelcastConstants.MAP_PREFIX);
Spring DSL:
使用驱除进行 放置 的示例:
Java DSL:
from("direct:put") .setHeader(HazelcastConstants.OPERATION, constant(HazelcastOperation.PUT)) .setHeader(HazelcastConstants.TTL_VALUE, constant(Long.valueOf(1))) .setHeader(HazelcastConstants.TTL_UNIT, constant(TimeUnit.MINUTES)) .toF("hazelcast-%sfoo", HazelcastConstants.MAP_PREFIX);
from("direct:put")
.setHeader(HazelcastConstants.OPERATION, constant(HazelcastOperation.PUT))
.setHeader(HazelcastConstants.TTL_VALUE, constant(Long.valueOf(1)))
.setHeader(HazelcastConstants.TTL_UNIT, constant(TimeUnit.MINUTES))
.toF("hazelcast-%sfoo", HazelcastConstants.MAP_PREFIX);
Spring DSL:
135.3.2. get 的示例: 复制链接链接已复制到粘贴板!
Java DSL:
from("direct:get") .setHeader(HazelcastConstants.OPERATION, constant(HazelcastOperation.GET)) .toF("hazelcast-%sfoo", HazelcastConstants.MAP_PREFIX) .to("seda:out");
from("direct:get")
.setHeader(HazelcastConstants.OPERATION, constant(HazelcastOperation.GET))
.toF("hazelcast-%sfoo", HazelcastConstants.MAP_PREFIX)
.to("seda:out");
Spring DSL:
135.3.3. 更新 示例: 复制链接链接已复制到粘贴板!
Java DSL:
from("direct:update") .setHeader(HazelcastConstants.OPERATION, constant(HazelcastOperation.UPDATE)) .toF("hazelcast-%sfoo", HazelcastConstants.MAP_PREFIX);
from("direct:update")
.setHeader(HazelcastConstants.OPERATION, constant(HazelcastOperation.UPDATE))
.toF("hazelcast-%sfoo", HazelcastConstants.MAP_PREFIX);
Spring DSL:
135.3.4. 删除 示例: 复制链接链接已复制到粘贴板!
Java DSL:
from("direct:delete") .setHeader(HazelcastConstants.OPERATION, constant(HazelcastOperation.DELETE)) .toF("hazelcast-%sfoo", HazelcastConstants.MAP_PREFIX);
from("direct:delete")
.setHeader(HazelcastConstants.OPERATION, constant(HazelcastOperation.DELETE))
.toF("hazelcast-%sfoo", HazelcastConstants.MAP_PREFIX);
Spring DSL:
135.3.5. 查询示例 复制链接链接已复制到粘贴板!
Java DSL:
from("direct:query") .setHeader(HazelcastConstants.OPERATION, constant(HazelcastOperation.QUERY)) .toF("hazelcast-%sfoo", HazelcastConstants.MAP_PREFIX) .to("seda:out");
from("direct:query")
.setHeader(HazelcastConstants.OPERATION, constant(HazelcastOperation.QUERY))
.toF("hazelcast-%sfoo", HazelcastConstants.MAP_PREFIX)
.to("seda:out");
Spring DSL:
对于查询操作 Hazelcast,提供类似语法的 SQL 来查询您的分布式映射。
String q1 = "bar > 1000"; template.sendBodyAndHeader("direct:query", null, HazelcastConstants.QUERY, q1);
String q1 = "bar > 1000";
template.sendBodyAndHeader("direct:query", null, HazelcastConstants.QUERY, q1);