我想要使用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)维护另一组父母,他们所在的列表(似乎是加倍工作)。
我确定我在这里遗漏了一些东西。