第 12 章 Multimap 缓存
MutimapCache 是一种 Data Grid Cache 类型,用于将键映射到每个键可以包含多个值的值。
12.1. Multimap Cache 复制链接链接已复制到粘贴板!
MutimapCache 是一种 Data Grid Cache 类型,用于将键映射到每个键可以包含多个值的值。
12.1.1. 安装和配置 复制链接链接已复制到粘贴板!
pom.xml
<dependency> <groupId>org.infinispan</groupId> <artifactId>infinispan-multimap</artifactId> </dependency>
<dependency>
<groupId>org.infinispan</groupId>
<artifactId>infinispan-multimap</artifactId>
</dependency>
12.1.2. MultimapCache API 复制链接链接已复制到粘贴板!
MultimapCache API 会公开几种与多映射缓存交互的方法。在大多数情况下,这些方法是非阻塞的;如需更多信息,请参阅 限制。
CompletableFuture<Void> put (K key, V value)
将键值对放在 multimap 缓存中。
这个代码的输出如下:
Marie is a girl name Oihana is a girl name
Marie is a girl name
Oihana is a girl name
CompletableFuture<Collection<V>> get (K key)
异步返回与这个多映射缓存中键关联的值(若有)的视图集合。对检索到的集合的任何更改都不会更改此多映射缓存中的值。当此方法返回空集合时,这意味着未找到该密钥。
CompletableFuture<Boolean> remove (K key)
异步的异步从多映射缓存中删除与密钥关联的条目(如果存在)。
CompletableFuture<Boolean> remove (K key, V value)
异步的异步,它会从多映射缓存中删除键值对(如果存在)。
CompletableFuture<Void> remove (Predicate<? super V> p)
异步方法.删除与给定 predicate 匹配的每个值。
CompletableFuture<Boolean> containsKey (K key)
如果这个多map包含密钥,则异步返回 true。
CompletableFuture<Boolean> containsValue (V value)
如果此多map包含至少一个键中的值,则异步返回 true。
CompletableFuture<Boolean> containsEntry(K key, V value)
如果此多map至少包含一个键值对和值,则异步返回 true。
CompletableFuture<Long> size ()
在多映射缓存中返回键值对数的异步。它不会返回不同的密钥数。
boolean supportsDuplicates()
如果多映射缓存支持重复,则异步返回 true。这意味着 multimap 的内容可以是 'a'
12.1.3. 创建多映射缓存 复制链接链接已复制到粘贴板!
目前,MultimapCache 配置为常规缓存。这可以通过代码或 XML 配置来完成。了解如何在配置 数据网格缓存中配置常规缓存。
12.1.3.1. 嵌入式模式 复制链接链接已复制到粘贴板!
12.1.4. 限制 复制链接链接已复制到粘贴板!
在几乎每个情况下,Multimap Cache 将作为常规缓存的行为,但当前版本中存在一些限制,如下所示:
12.1.4.1. 支持重复 复制链接链接已复制到粘贴板!
可将多映射配置为存储单个键的重复值。重复是由值的 等号
方法决定的。每当调用 put 方法时,如果将 multimap 配置为支持重复,则键值对将添加到集合中。在 multimap 上调用 remove 将删除所有重复(如果存在)。
12.1.4.2. 驱除 复制链接链接已复制到粘贴板!
现在,驱除会按键而不是每个键对工作。这意味着,每当键被驱除时,与键关联的所有值也会被驱除。
12.1.4.3. Transactions 复制链接链接已复制到粘贴板!
通过 auto-commit 支持隐式事务,所有方法都不是阻塞的。在大多数情况下,显式事务都可以正常工作。将阻止 大小为
、包含Entry
和 remove (Predicate<? super V> p)的方法