3.2. 从 Data Grid 控制台和 CLI 查询缓存
Data Grid Console 和 Data Grid 命令行界面(CLI)可让您查询索引和非索引的远程缓存。您还可以使用任何 HTTP 客户端通过 REST API 索引和查询缓存。
此流程解释了如何对存储 Person
实例的远程缓存进行索引和查询。
先决条件
- 至少有一个正在运行的 Data Grid 服务器实例。
- 具有创建权限的 Data Grid 凭证。
流程
在 Protobuf 模式中添加索引注解,如下例所示:
package org.infinispan.example; /* @Indexed */ message Person { /* @Field(index=Index.YES, store = Store.NO, analyze = Analyze.NO) */ optional int32 id = 1; /* @Field(index=Index.YES, store = Store.YES, analyze = Analyze.NO) */ required string name = 2; /* @Field(index=Index.YES, store = Store.YES, analyze = Analyze.NO) */ required string surname = 3; /* @Field(index=Index.YES, store = Store.YES, analyze = Analyze.NO) */ optional int32 age = 6; }
在 Data Grid CLI 中,使用带有
--upload=
参数的schema
命令,如下所示:schema --upload=person.proto person.proto
创建名为 ProtoStream 编码的人员 的缓存,并将 Data Grid 配置为索引您的 Protobuf 模式中声明的实体。
以下缓存会索引上一步中的
Person
实体:<distributed-cache name="people"> <encoding media-type="application/x-protostream"/> <indexing> <indexed-entities> <indexed-entity>org.infinispan.example.Person</indexed-entity> </indexed-entities> </indexing> </distributed-cache>
在 CLI 中,使用带有
--file=
参数的create cache
命令,如下所示:create cache --file=people.xml people
在缓存中添加条目。
要查询远程缓存,需要包含一些数据。在本例中,创建使用以下 JSON 值的条目:
PersonOne
{ "_type":"org.infinispan.example.Person", "id":1, "name":"Person", "surname":"One", "age":44 }
PersonTwo
{ "_type":"org.infinispan.example.Person", "id":2, "name":"Person", "surname":"Two", "age":27 }
PersonThree
{ "_type":"org.infinispan.example.Person", "id":3, "name":"Person", "surname":"Three", "age":35 }
在 CLI 中,使用
put
命令和--file=
参数来添加每个条目,如下所示:put --encoding=application/json --file=personone.json personone
提示在 Data Grid Console 中,在使用自定义 类型为 JSON 格式添加值时,您必须为 Value 内容类型 字段选择 Custom Type。
查询您的远程缓存。
通过 CLI,从远程缓存的上下文中使用
query
命令。query "from org.infinispan.example.Person p WHERE p.name='Person' ORDER BY p.age ASC"
查询会返回所有带有以升序与
Person
匹配的条目。
其他资源