Redis - 代表层次结构

时间:2013-08-14 22:31:42

标签: data-structures redis hierarchy

我想要使用Redis补充大量数据(大约6.5M行)。基本上,我想使用有序集来存储数据的层次结构。因此,一些示例数据可能如下所示(使用族树作为示例)。

royalty_id | name         | date      | favorite_color | parent
================================================================
       990 | George VI    | 1895-1952 | purple         | NULL
       991 | Margaret     | 1930-2002 | green          | 990
       992 | Elizabeth II | 1926-     | yellow         | 990
       993 | Edward       | 1964-     | purple         | 992
       994 | Andrew       | 1960-     | brown          | 992
       995 | Anne         | 1950-     | pink           | 992
       996 | Charles      | 1948-     | purple         | 992
       997 | Harry        | 1984-     | red            | 996
       998 | William      | 1982-     | blue           | 996
       999 | George       | 2013-     | blue           | 998

你明白了。我所拥有的层次结构不是很深(最多可能有8个条目?),其中只有很多。当我浏览条目列表时,我想将它们放在一个redis排序集中,如下所示:

lpush ancestors_of.999 998
lpush ancestors_of.999 996
lpush ancestors_of.998 996

等等。问题是,这些条目在数据库中的顺序不像它们在此示例数据中那样。对于每一行,我可以查看层次结构的底部,顶部或中间。那么,最好的方法是什么?

以下是我考虑过的一些选项: 1)继续作为上面的示例,但是对于每个数据库行,搜索每个列表的现有条目以查看新行是否已经存在(看起来非常低效)。 2)维护另一组父母,他们所在的列表(似乎是加倍工作)。

我确定我在这里遗漏了一些东西。

0 个答案:

没有答案