在Ignite缓存

时间:2017-09-25 09:32:21

标签: ignite jcache

有什么方法可以获得由其他代码创建的缓存的基础键和值类型定义?此时我只知道缓存名称。我没有关于如何创建缓存的任何其他信息。

IgniteCache<K, V> dataCache = ignite.cache("dataCache");

我需要在上面的行中获得K和V的类型。

我将CacheEntryListener附加到缓存中,我需要访问缓存的值部分中的字段。我该怎么做呢?有没有什么办法可以从我在侦听器方法中获得的CacheEntryEvent事件中访问类型信息?

1 个答案:

答案 0 :(得分:2)

Ignite缓存没有任何基础类型定义,它可以保存任何类型的数据。 泛型只是为了您的方便。

例如,您可以这样做:

IgniteCache<String, String> sCache = ignite.createCache("foo");
sCache.put("1", "2");

IgniteCache<Integer, Integer> iCache = ignite.cache("foo"); // same cache
iCache.put(1, 2);

IgniteCache<Object, Object> oCache = ignite.cache("foo"); // same cache
oCache.get(1);  // 2
oCache.get("1");  // "2"

但是,不建议这样做。

建议的方法是每个缓存一种类型:您的应用程序逻辑应确保每个命名缓存仅适用于特定数据类型。