voldemort - 正确使用伏地魔作为键值对?

标签 voldemort

我试图理解,如何使用伏地魔?说,我有这个场景:

因为,伏地魔是一个键值对。
我需要根据 3 个参数获取一个值(比如一些文本)。

那么,在这种情况下,关键是什么?我不能将 3 个键用于 1 个值,但该值应该可以根据这 3 个参数进行搜索。

我说的有道理吗?

谢谢

编辑1

例如:一个博客系统。用户发布博客:存储的用户数据:姓名、年龄和性别
存储博客内容(文本)。

现在,我需要在这里使用伏地魔,如果用户从前端搜索性别:男性的所有博客文章

然后,我的代码应该查询 voldemort 并返回所有性别为男性的“博客内容(文本)”。

所以,根据我的理解:

Key = Name, Age and Sex
Value = Text

我正在使用 Java。

最佳答案

编辑答案以适合添加到问题的示例:

关于伏地魔的理解是它是一个非常简单的键值存储。据我所知,你唯一能做的就是在一个键下存储一个值,然后通过键获取这些值。所以对于你的例子,如果你真的想使用伏地魔,你有几个选择。

因此,例如,您说过要为用户存储数据。所以,你可能有这样的事情:

Key = user-Chad
Value = Name:Chad Birch, Age:26, Sex:Male

现在,如果我想发布新的博客文章,您还需要将其存储在一个 key 下。所以你可以做这样的事情:
Key = blog-Chad1
Value = Here is my very first blog post.

现在,您的问题是您需要某种方法来查找用户使用 Sex:Male 发表的所有博客文章,但无法直接获取该数据。此时,您必须:
  • 拉出每个用户,检查他们是否是男性,如果是,则拉出他们的博客文章。
  • 开始在其他键值对中存储更多内容,以便您可以查找。

  • 要实现#2,您可以添加另一对,如下所示:
    Key = search-Sex:Male
    Value = Chad1 Chad2 Steve1 ...
    

    然后,当有人搜索 Sex:Male 时,您会提取此值,将其拆分,然后获取所有这些博客文章。

    那有意义吗?使用 k-v 存储与数据库有很大不同,因为您失去了所有这些关系能力。

    关于voldemort - 正确使用伏地魔作为键值对?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2563246/

    相关文章:

    voldemort - LinkedIn 之外是否有人使用 Voldemort?

    Oracle (RAC) 与 NoSQL

    memcached - 大型对象的分布式缓存

    java - Guava/Voldemort/MySQL 刷新到数据库问题

    java - Voldemort安装: could not find tools. jar

    java - Voldemort 中任意 HashMap 的 JSON 序列化程序

    nosql - 谁能解释一下伏地魔项目或类似的键值存储有用的场景?