0

I'm trying to do some tricks with a graph (node/edges) dataset. In this case a set of data where person x follows person y (direct relation). I want to load this data (from a mysql table) into redis (have it running). I've chosen to use Rediska because I use PHP and it seems stable.

Rediska has very limited documentation and examples, so I was hoping you guys can help me. I have little to no experience with noSQL, especially the naming conventions (userid:1:follows = 2?).

My questions:

  • how do I load a set of person x follows person y data into a redis data set
  • how do I find the "intersect" (SINTER) and end up with a php array (so I get person X and person Y both follow (a result set) of people))
  • and last not but leasy, how would I 'traverse' this graph data to find a relation: person x -> person y -> person z (person x and person z both follow person y, hence person z is in the result set)
4

1 に答える 1

1

Q1人 x が人 y をフォローしているデータのセットをどのように redis データセットにロードしますか?
セットをデータ構造として使用し、そこにフォローしている人々のインデックスを入れる必要があります。たとえば、ID が 1 から 10 の 10 人のユーザーがいて、person:3、person:5、person:10 はすべて person:2 をフォローしているとします。

悲しい人:2:フォロワー 3
悲しい人:2:フォロワー 5
悲しい人:2:フォロワー 10

これにより、id 3、5、および 10 を含む person 2 の一連のフォロワーが得られます。このデータをクエリするには...

smembers person:2:フォロワー

Q2交点を見つけて php array(person:x:followers && person:y:followers) になるにはどうすればよいですか?

sinterstore tmp 人:2:フォロワー 人:8:フォロワー
sort tmp get person:*->name get person:*->age

Q3このグラフ データをどのようにトラバースして関係を見つけますか: 人物 x -> 人物 y -> 人物 z (人物 x と人物 z は両方とも人物 y をフォローしているため、人物 z が結果セットに含まれます) ?

この質問は(少なくとも私には)意味がありません。説明または言い換えていただけますか?
于 2011-06-11T12:52:03.400 に答える