我有几个具有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中存储对象吗?
答案 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脚本从/和索引
进行/设置哈希