在正则表达式中提供键时,如何从Ignite Cache中获取值?

时间:2019-07-29 09:11:28

标签: ignite

我的Ignite缓存中有密钥的格式,例如

igniteCache.put("CACHE_1.2.3", someValue1)
igniteCache.put("CACHE_1.2.4", someValue2)
igniteCache.put("CACHE_2.2.3", someValue3)

如何获取键与正则表达式匹配的值,例如“ CACHE_1。” 我期待输出 [someValue1,someValue2]

有人可以解决这个问题吗?

2 个答案:

答案 0 :(得分:2)

可以通过使用带有LIKE谓词的SQL请求来达到这种效果。

考虑以下示例:

CREATE TABLE people(name varchar PRIMARY KEY, age int);

INSERT INTO people (name, age) values('Bob', 21);
INSERT INTO people (name, age) values('George', 30);
INSERT INTO people (name, age) values('Georgiy', 31);

SELECT * FROM people WHERE name LIKE 'Georg%'

最终选择将产生两行,其中name列从“乔治”开始。

因此,您需要切换到使用SQL来定义数据模式,或为缓存配置query entities

答案 1 :(得分:0)

您还可以将ScanQuery与谓词一起使用:

igniteCache.query(new ScanQuery<String, Integer>((k, v) -> k.startsWith("CACHE_1")));