Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Data structures Redis-表示层次结构_Data Structures_Redis_Hierarchy - Fatal编程技术网

Data structures Redis-表示层次结构

Data structures Redis-表示层次结构,data-structures,redis,hierarchy,Data Structures,Redis,Hierarchy,我有很多数据(大约650万行),我想用Redis来补充。基本上,我想使用排序集来存储数据的层次结构。因此,一些示例数据可能如下所示(以族谱为例) 你明白了。我的层次结构不是很深(最多8个条目?),只是很多。当我浏览条目列表时,我想将它们放入一个redis排序集中,如下所示: lpush ancestors_of.999 998 lpush ancestors_of.999 996 lpush ancestors_of.998 996 等等。问题是,这些条目在数据库中的顺序与此示例数据中的顺序不

我有很多数据(大约650万行),我想用Redis来补充。基本上,我想使用排序集来存储数据的层次结构。因此,一些示例数据可能如下所示(以族谱为例)

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

lpush ancestors_of.999 998
lpush ancestors_of.999 996
lpush ancestors_of.998 996
等等。问题是,这些条目在数据库中的顺序与此示例数据中的顺序不同。对于每一行,我可以查看层次结构的底部、顶部或中间。那么,最好的方法是什么

以下是我考虑过的一些选择: 1) 继续上面的示例,但对于每个数据库行,搜索每个列表的现有条目,查看新行是否已经在其中(似乎效率很低)。 2) 与家长一起维护另一组他们所处的列表(似乎要加倍工作)


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

“我有很多数据(大约650万行)”…不,你没有:-)你面临什么样的问题?查询时间太长?如果查询时间太长,我建议您将它们缓存一段时间。本地或在一个简单的redis散列中。特别是因为您显示的数据似乎非常静态(家长的数据不会经常更改)@Martinb-它实际上每晚都会被替换和重建。这不是家庭数据,这只是一个样本。我们经常碰到这种继承权,所以我不需要在数据库中遍历它,而是想在Redis中设计它来补充数据库信息。我只是没有在Redis上做太多的开发,在设计上需要一些帮助。@raffian-如果我每行有一美元。。。一切都取决于数据的访问方式和优化方式。
lpush ancestors_of.999 998
lpush ancestors_of.999 996
lpush ancestors_of.998 996