2015-04-15 47 views
1

我使用Hazelcast中的地圖數據結構存儲數據。這將讓存儲象下面這樣:正則表達式關鍵hazelcast

key1 valueforKey1 
key2 valueforkey2 
key11 valueforKey11 
key22 valueforKey22 
key123 valueforKey123 
key33 valueforKey33 

現在我想從hazelcast密鑰的基礎上獲取數據,e.g我想其鍵啓動與key1*的所有記錄。

我該怎麼做榛色?

注意:在值我存儲一些字符串。

+1

不知道這一點,但您可以嘗試'^鍵1 *' –

回答

2

只需通過使用Hazelcast標準API http://docs.hazelcast.org/docs/3.4/manual/html-single/hazelcast-documentation.html#criteria-api

要麼與正則表達式指令。

編輯:

這裏有一個完整的例子:

public class Test { 
    public static void main(String[] args) { 
    HazelcastInstance hazelcastInstance = Hazelcast.newHazelcastInstance(); 
    IMap<String, String> map = hazelcastInstance.getMap(" 

    map.put("key1", "value-1"); 
    map.put("key21", "value-21"); 
    map.put("key11", "value-key11"); 

    SqlPredicate predicate = new SqlPredicate("__key REGEX '^key1.*$'"); 
    System.out.println(map.values(predicate)); 
    } 
} 
+0

感謝您的鏈接。我的代碼 IMap hCTable = client.getMap(tableName); hCTable.put(「key1」,「valueforKey1」); hCTable.put(「key2」,「valueforkey2」); hCTable.put(「key11」,「valueforKey11」); hCTable.put(「key22」,「valueforKey22」); hCTable.put(「key123」,「valueforKey123」); 這就是我如何將它存儲在hazelcast中。 現在我想要獲取以key開頭的值:key1 它應該返回所有以key1開頭的值 我沒有發現任何可以使用您提供的鏈接執行此操作的值。如果可以使用上面的鏈接,請給我一個例子嗎? – Sachin

+0

'new SqlPredicate(「__ key REGEX'^ key1。* $'」);' – noctarius