第 4 章 配置缓存编码


Data Grid 以特定格式保存您的数据,该格式可在读取和写入缓存时进行转换。通过为键和值指定 MediaType 来配置存储格式,它描述了数据的格式。

网格也可以转换不同存储格式之间的数据,以处理不同客户端协议和使用自定义代码处理数据之间的互操作性。

4.1. 缓存编码和客户端互操作性

您用于数据的编码会影响客户端互操作性和功能,如数据网格搜索。

表 4.1. protobuf 格式
以 Protobuf 格式存储数据,将其与…​ 一起使用

Data Grid 控制台

REST 客户端

Java Hot Rod 客户端

非 Java Hot Rod 客户端

Data Grid Search

自定义 Java 对象

表 4.2. 基于文本的格式
以基于文本的格式存储数据,将其与…​ 一起使用

Data Grid 控制台

REST 客户端

Java Hot Rod 客户端

非 Java Hot Rod 客户端

Data Grid Search

自定义 Java 对象

表 4.3. Marshalled Java 对象
Marshalled Java 对象与…​ 兼容

Data Grid 控制台

REST 客户端

Java Hot Rod 客户端

非 Java Hot Rod 客户端

Data Grid Search

表 4.4. Unmarshalled Java Objects
不建议使用普通旧 Java 对象(POJO),但与…​ 兼容

Data Grid 控制台

REST 客户端

Java Hot Rod 客户端

非 Java Hot Rod 客户端

Data Grid Search

是。但是,您必须注解实体以使用 POJO 搜索,并将您的类提供给 Data Grid 服务器。

自定义 Java 对象

4.1.1. 为 Memcached 客户端配置缓存编码

默认情况下,Data Grid 服务器禁用 Memcached 端点。如果启用 Memcached 端点,您应该使用 Memcached 客户端的适当编码配置缓存。

重要

Memcached 端点不支持身份验证。为了安全起见,您应该将专用缓存用于 Memcached 客户端。您不应该使用 REST 或 Hot Rod 客户端在与 Memcached 客户端相同的数据上交互。

流程

  1. 配置缓存编码,以将 text/plain 用于密钥。
  2. 为值指定任何合适的 MediaType,而不是 application/x-java- 对象

    Memcached 客户端只能以 text/plain 的形式处理密钥。值可以是 Data Grid 存储为 byte[] 的任何 MediaType,可以是 Protobuf、marshalled Java 对象或基于文本的格式。

    <encoding>
      <key media-type="text/plain"/>
      <value media-type="application/x-protostream"/>
    </encoding>
提示

Memcached 端点包含一个 client-encoding 属性,用于转换值的编码。

例如,如前面的配置示例所示,您可以将值编码为 Protobuf。如果您希望 Memcached 客户端以 JSON 读写值,您可以使用以下配置:

<memcached-connector cache="memcachedCache" client-encoding="application/json">
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.