第 4 章 配置缓存编码
Data Grid 以特定格式保存您的数据,该格式可在读取和写入缓存时进行转换。通过为键和值指定 MediaType 来配置存储格式,它描述了数据的格式。
网格也可以转换不同存储格式之间的数据,以处理不同客户端协议和使用自定义代码处理数据之间的互操作性。
4.1. 缓存编码和客户端互操作性
您用于数据的编码会影响客户端互操作性和功能,如数据网格搜索。
以 Protobuf 格式存储数据,将其与… 一起使用 | |
---|---|
Data Grid 控制台 | 是 |
REST 客户端 | 是 |
Java Hot Rod 客户端 | 是 |
非 Java Hot Rod 客户端 | 是 |
Data Grid Search | 是 |
自定义 Java 对象 | 是 |
以基于文本的格式存储数据,将其与… 一起使用 | |
---|---|
Data Grid 控制台 | 是 |
REST 客户端 | 是 |
Java Hot Rod 客户端 | 是 |
非 Java Hot Rod 客户端 | 是 |
Data Grid Search | 否 |
自定义 Java 对象 | 否 |
Marshalled Java 对象与… 兼容 | |
---|---|
Data Grid 控制台 | 否 |
REST 客户端 | 是 |
Java Hot Rod 客户端 | 是 |
非 Java Hot Rod 客户端 | 否 |
Data Grid Search | 否 |
不建议使用普通旧 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 客户端相同的数据上交互。
流程
-
配置缓存编码,以将
text/plain
用于密钥。 为值指定任何合适的 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">