从IgniteCache获取密钥

时间:2017-08-30 12:25:59

标签: java ignite

我必须将所有密钥存储在IgniteCache中,遗憾的是,此方法未在Ignite中实现。我使用的是java客户端。 我认为这是一种常用的方法,Ignite团队没有实现它的原因是什么?

获取密钥是否有任何有效的解决方案?

3 个答案:

答案 0 :(得分:4)

您可以使用带有select _key from Entity谓词的ScanQuery获取所有密钥。它将返回所有条目(键值对) 您也可以使用SqlFieldsQuery之类datetime

答案 1 :(得分:2)

感谢@alexfedotov我为我的问题创建了一个解决方案,我在这里定位它,因为有人可能觉得它很有用。

List<K> keys = new ArrayList<>();
cache.query(new ScanQuery<>(null)).forEach(entry -> keys.add((K) entry.getKey()));

运行此代码后,您将收到一个包含密钥集的列表。

答案 2 :(得分:0)

从缓存中获取所有密钥的最简单方法:

ICache<string, object> cache = ignite.GetCache<string, object>(cacheName);
List<string> cacheKeys = cache.Select(e => e.Key).ToList();