我必须将所有密钥存储在IgniteCache中,遗憾的是,此方法未在Ignite中实现。我使用的是java客户端。 我认为这是一种常用的方法,Ignite团队没有实现它的原因是什么?
获取密钥是否有任何有效的解决方案?
答案 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();