2016-08-19 81 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。

如果你平时的访问模式不涉及整个对象,另一种是使用哈希,因为这将让你获得和单独设置领域,减少数据的需要转账的金额。 (它不会减少存储数据所需的内存总量,虽然)。

相关问题