3.3. 从 Data Grid 控制台和 CLI 查询缓存


Data Grid Console 和 Data Grid Command Line Interface (CLI)可让您查询索引和非索引的远程缓存。您还可以使用任何 HTTP 客户端通过 REST API 索引和查询缓存。

此流程解释了如何索引和查询存储 Person 实例的远程缓存。

先决条件

  • 至少有一个正在运行的 Data Grid 服务器实例。
  • 具有具有创建权限的 Data Grid 凭据。

流程

  1. 在 Protobuf 模式中添加索引注解,如下例所示:

    package org.infinispan.example;
    
    /* @Indexed */
    message Person {
    
        /* @Basic */
        optional int32 id = 1;
    
        /* @Keyword(projectable = true) */
        required string name = 2;
    
        /* @Keyword(projectable = true) */
        required string surname = 3;
    
        /* @Basic(projectable = true, sortable = true) */
        optional int32 age = 6;
    
    }
    Copy to Clipboard Toggle word wrap

    在 Data Grid CLI 中,使用带有 --upload= 参数的 schema 命令,如下所示:

    schema --upload=person.proto person.proto
    Copy to Clipboard Toggle word wrap
  2. 创建名为 people 的缓存,它使用 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>
    Copy to Clipboard Toggle word wrap

    在 CLI 中,使用带有 --file= 参数的 create cache 命令,如下所示:

    create cache --file=people.xml people
    Copy to Clipboard Toggle word wrap
  3. 向缓存中添加条目。

    要查询远程缓存,需要包含一些数据。在本例中,创建使用以下 JSON 值的条目:

    PersonOne

    {
      "_type":"org.infinispan.example.Person",
      "id":1,
      "name":"Person",
      "surname":"One",
      "age":44
    }
    Copy to Clipboard Toggle word wrap

    PersonTwo

    {
      "_type":"org.infinispan.example.Person",
      "id":2,
      "name":"Person",
      "surname":"Two",
      "age":27
    }
    Copy to Clipboard Toggle word wrap

    PersonThree

    {
      "_type":"org.infinispan.example.Person",
      "id":3,
      "name":"Person",
      "surname":"Three",
      "age":35
    }
    Copy to Clipboard Toggle word wrap

    在 CLI 中,使用带有 --file= 参数的 put 命令来添加每个条目,如下所示:

    put --encoding=application/json --file=personone.json personone
    Copy to Clipboard Toggle word wrap
    提示

    在 Data Grid Console 中,当使用自定义类型添加 JSON 格式的值时,您必须为 Value 内容类型 字段选择 Custom Type

  4. 查询您的远程缓存。

    在 CLI 中,使用远程缓存上下文中的 query 命令。

    query "from org.infinispan.example.Person p WHERE p.name='Person' ORDER BY p.age ASC"
    Copy to Clipboard Toggle word wrap

    查询返回所有名称与 Person by age 匹配的条目(以升序表示)。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat