KeyValue

Spring Data KeyValue 提供对将值与唯一键关联的类似 Map 结构的简单配置和访问。 它提供用于与底层数据结构交互的低级和高级抽象,从而使用户摆脱了基础架构的考虑。

Spring Data Key Value 中的键值抽象需要一个 Adapter,该 Adapter 用于屏蔽本机存储实现,从而释放 KeyValueTemplate 以便在任何类似键值对的结构之上工作。 键分布在 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.

}
1 插入给定的实体并分配 ID(如果需要)。
2 更新给定的实体。
3 删除所有匹配类型的实体。
4 返回给定类型的具有匹配 ID 的实体。
5 返回所有匹配类型的实体。
6 返回与查询条件匹配的给定类型的所有实体的 List

Keyspace

Keyspace 定义应在其中保留实体的数据结构的一部分。 此概念类似于 MongoDB 和 Elasticsearch 中的集合、Solr 中的核心以及 JPA 中的表。 默认情况下,实体的键空间是从其类型中提取的,但您也可以在一个键空间中存储不同类型的实体。