0

我正在尝试使用图形(节点/边)数据集做一些技巧。在这种情况下,一组数据,其中人员 x 跟随人员 y(直接关系)。我想将这些数据(从 mysql 表)加载到 redis 中(让它运行)。我选择使用Rediska是因为我使用 PHP,而且它看起来很稳定。

Rediska 的文档和示例非常有限,所以我希望你们能帮助我。我几乎没有使用 noSQL 的经验,尤其是命名约定 (userid:1:follows = 2?)。

我的问题:

  • 如何将一组人 x 跟随人 y 数据加载到 redis 数据集中
  • 我如何找到“相交”(SINTER)并最终得到一个 php 数组(所以我让 X 人和 Y 人都跟随(结果集)人))
  • 最后不是但很容易,我将如何“遍历”这个图形数据来找到一个关系:人 x -> 人 y -> 人 z(人 x 和人 z 都跟随人 y,因此人 z 在结果集中)
4

1 回答 1

1

Q1如何将一组人 x 关注人 y 数据加载到 redis 数据集中
您需要使用一个集合作为数据结构,并将关注的人的索引放入其中。例如,假设您有 10 个 id 从 1 到 10 的用户,并且您想说 person:3、person:5 和 person:10 都是以下 person:2 ...

悲伤的人:2:追随者3
悲伤的人:2:追随者5
悲伤的人:2:追随者10

这将为您提供一组包含 ID 3、5 和 10 的人员 2 的关注者。要查询此数据...

smembers人:2:追随者

Q2如何找到相交并以 php 数组结尾(person:x:followers && person:y:followers)

sinterstore tmp 人:2:追随者 人:8:追随者
排序 tmp 获取人员:*-> 姓名获取人员:*-> 年龄

Q3您将如何遍历此图数据以找到关系:人 x -> 人 y -> 人 z(人 x 和人 z 都跟随人 y,因此人 z 在结果集中)

这个问题没有意义(至少对我来说)。你能解释一下或改写它吗?
于 2011-06-11T12:52:03.400 回答