2012-03-30 54 views
0

我必须在我的HashMultiMap中存储超过1亿个键值(键值可以有多个值)。现在,我想为此使用Jedis。我从here - Jedis 2.0.0.0.jar下载它作为推荐给我的here。现在,经过一番搜索,我找不到任何漂亮的文档,可以帮助我作为初学者:Redis:初学者问题

1)如何使用Jedis(具体来说,我必须将它视为java ex。中的普通.jar文件番石榴)?

2)如何在Redis中实现HashMultiMap(key可以有多个值)?

3)如何在Redis中执行所有插入,搜索等操作。

4)我通过搜索Redis发现了许多选项,如Jedis,Redis,Jredis等。这些变体是什么?以及哪一个我会很高兴我解决this

任何信息和/或任何文件的链接将对我有帮助。对不起,如果我提出任何愚蠢的问题,因为我不知道Redis。所以,开始的想法对我来说很有价值。谢谢。

+0

Redis有一个用户手册,Jedis有一个项目页面。您应该从源头开始,因为我们只会将您重定向到那里。 – ControlAltDel 2012-03-30 19:04:49

+0

此外,你应该问每个问题一个问题:) – 2012-03-30 19:05:36

回答

1

恐怕没有一种简单的方法来实现你想要的。 Redis只有普通的哈希。一个关键 - 一个价值。

但是,您可以将多个值序列化为字符串,并将作为值存储在中。当然,你失去了单独插入/更新/删除项目的能力,你必须每次都重置整个值。但是这对你来说可能不是问题。

+0

行。所以,每次我必须获得关键(碰撞)的价值,并将其追加到字符串中。没有内在的方式? – Arpssss 2012-03-30 19:07:18

+0

我在想更多的JSON字符串,但你也可以这样做。 – 2012-03-30 19:10:33

1

Redis的内部类型很少,例如lists or sets or associated hashes.我想你可以使用你的案例。因为内部类型的操作是原子性的,所以序列化whle数据会更好,并且您不需要担心可能的竞争条件。

1
  1. 退房https://github.com/xetorthio/jedis/wikihttp://redis.io/commands
  2. 有几种方式使用列表/的SortedSet/hashs为您的多重映射的一个领域,其暗示。然后 a)使子数据库提供分离的命名空间,即限制你的整体多图(select和/或 b)使用密钥在redis中具有的丰富语义(参见示例here)。您可以使用常规的键/值映射set/get来制作您的multimap,并使用键名称来额外描述您的地图字段。你有多种选择来获得你想要的。最后的胜地之一是脚本。
  3. 取决于!
  4. afaik,jedis是最成熟的。