从 IgniteCache 获取密钥

get Keys from IgniteCache

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

有什么有效的获取密钥的方法吗?

您可以使用 ScanQuerynull 谓词来获取所有键。它将 return 所有条目(键值对)。
您也可以使用 SqlFieldsQuery 之类的 select _key from Entity

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

List<K> keys = new ArrayList<>();
cache.query(new ScanQuery<>(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();