2016-08-19 57 views
1

在我Redis的DB我想保存下列數據:有效的方式來在Redis的DB數據保存

{"id": "1", "data": "abc", "param": "p1"} 
{"id": "2", "data": "def", "param": "p2"} 

目前我節約每一行,如下所示(使用Jedis客戶端的Java):

JEDIS.set(line.getId(),line.getLine()); 

所以,結果是這樣的:

"1", "{"id": "1", "data": "abc", "param": "p1"}" 

GET 1 
{"id": "1", "data": "abc", "param": "p1"} 

它是一個有效的辦法來挽救這種在雷迪數據S'也許最好將每行轉換爲Set或其他東西?

+0

當然,這是一種有效的方式來拯救* *它。但你打算如何訪問它?這是選擇正確的數據結構中最重要的事情。 –

+0

@KevinChristopherHenry:我是Redis的新手,但我的想法是通過ID從Redis中讀取Json字符串,然後從我的代碼中執行解析。但是,我不確定是否有任何方法可以避免這種解析,並且消耗更少的內存。問題是,現在我也消耗額外的內存資源保存的Json字符串的標點符號(如:'{''}','「') – HackerDuck

+0

這聽起來像你需要的是MongoDB的 –

回答

3

如果您只需要獲取並設置blob數據,那麼直接使用GETSET是有道理的。如果內存使用是一個問題,您可以使用MessagePack而不是JSON。

如果你平時的訪問模式不涉及整個對象,另一種是使用哈希,因爲這將讓你獲得和單獨設置領域,減少數據的需要轉賬的金額。 (它不會減少存儲數據所需的內存總量,雖然)。

相關問題