Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从缓存中获取密钥_Java_Ignite - Fatal编程技术网

Java 从缓存中获取密钥

Java 从缓存中获取密钥,java,ignite,Java,Ignite,我必须获取IgniteCache中存储的所有密钥,不幸的是,Ignite中没有实现此方法。我正在使用java客户端。 我认为这是一种常见的方法,Ignite团队没有实施它的原因是什么 有没有有效的解决方案来获取密钥?您可以使用null谓词获取所有密钥。它将返回所有条目(键值对)。 您还可以使用likeselect\u键从实体中选择多亏了@alexfedotov,我为我的问题创建了一个解决方案,我把它放在这里,因为有人可能会发现它很有用 List<K> keys = new Array

我必须获取IgniteCache中存储的所有密钥,不幸的是,Ignite中没有实现此方法。我正在使用java客户端。 我认为这是一种常见的方法,Ignite团队没有实施它的原因是什么


有没有有效的解决方案来获取密钥?

您可以使用
null
谓词获取所有密钥。它将返回所有条目(键值对)。

您还可以使用like
select\u键从实体中选择

多亏了@alexfedotov,我为我的问题创建了一个解决方案,我把它放在这里,因为有人可能会发现它很有用

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

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

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

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