跳到主要内容

KeyValue

QWen Flash 中英对照 KeyValue

Spring Data KeyValue 提供易于配置和访问类似 Map 的结构,这些结构将值与唯一键关联。它提供用于与底层数据结构交互的低级别和高级别抽象,使用户无需关注基础设施问题。

Spring Data Key Value 中的键值抽象需要一个 Adapter,用于屏蔽原生存储实现,使 KeyValueTemplate 能够在任意类键值对结构之上工作。Keys 分布在 Keyspaces 中。除非另有指定,否则使用类名作为实体的默认 keyspace。以下接口定义展示了 KeyValueOperations 接口,它是 Spring Data Key-Value 的核心:

interface KeyValueOperations {

<T> T insert(T objectToInsert); 1

void update(Object objectToUpdate); 2

void delete(Class<?> type); 3

<T> T findById(Object id, Class<T> type); 4

<T> Iterable<T> findAllOf(Class<T> type); 5

<T> Iterable<T> find(KeyValueQuery<?> query, Class<T> type); 6

//... more functionality omitted.

}
java
  • 插入给定的实体,并在需要时分配 ID。

  • 更新给定的实体。

  • 删除所有匹配类型的实体。

  • 返回给定类型中具有匹配 ID 的实体。

  • 返回所有匹配类型的实体。

  • 返回一个 List,包含给定类型中匹配查询条件的所有实体。

Keyspaces​

Keyspaces 定义了实体应当保存在数据结构中的哪个部分。这一概念类似于 MongoDB 和 Elasticsearch 中的 collections、Solr 中的 cores,以及 JPA 中的 tables。默认情况下,实体的 keyspace 由其类型提取,但你也可以在一个 keyspace 中存储不同类型的实体。