我的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]
有人可以解决这个问题吗?
答案 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")));