从redis存储和检索对象?

时间:2014-07-08 11:11:22

标签: java redis jedis

我有几个具有id和名字的Mountain对象。

我存储了这些对象

HMSET Mountain:1 id "1" name "Mo1"
HMSET Mountain:2 id "2" name "Mo2"
HMSET Mountain:3 id "3" name "Mo2"

如何获得所有Mountain对象?或者有更好的方法在redis中存储对象吗?

1 个答案:

答案 0 :(得分:2)

您应该使用2命令:

KEYS Mountain:*
HGETALL <everykeys>

但是,如果可以,最好不要使用KEYS命令,所以你可以这样做:

HMSET Mountain:1 id "1" name "Mo1"
SADD Montains Mountain:1
HMSET Mountain:2 id "2" name "Mo2"
SADD Montains Mountain:2
HMSET Mountain:3 id "3" name "Mo3"
SADD Montains Mountain:3

得到它:

SMEMBERS Mountain
HGETALL <everykeys>

Redis是具有额外数​​据类型的键/值系统,因此您必须构建索引 因此,例如,如果名称是索引,则名称是唯一的:

HSET Mountains:IdByName "Mo3" 3

你将获得id:

HGET Mountains:IdByName "Mo3"

for non unique让我们再次使用set

SADD Mountains:IdByName:Mo3 3

你会增加密钥的数量以及为什么不推荐使用KEYS,因为价格昂贵

下一步是使用lua脚本从/和索引

进行/设置哈希