2010-10-14 5 views
0

Я пытаюсь выполнить некоторые трюки с набором данных с графиком (узел/ребра). В этом случае набор данных, где человек x следует за человеком y (прямая связь). Я хочу загрузить эти данные (из таблицы mysql) в redis (если он работает). Я решил использовать Rediska, потому что я использую PHP и кажется стабильным.Redis и PHP (Rediska) пересекаются по множеству

Rediska имеет очень ограниченную документацию и примеры, поэтому я надеялся, что вы, ребята, можете мне помочь. У меня мало опыта работы с noSQL, особенно с соглашениями об именах (userid: 1: follow = 2?).

Мои вопросы:

  • Как загрузить набор лицо х следующим образом данные лица Y в Redis данные набора
  • как я считаю «пересекаются» (SINTER) и в конечном итоге с php array (так что я получаю человека X и человека Y, которые следуют (результирующий набор) людей))
  • и последнее, но не leasy, как бы я «пересекал» эти данные графика, чтобы найти отношение: person x -> person y -> человек z (человек x и человек z оба следуют за человеком y, отсюда лицо z находится в результирующем наборе)
+0

Подобно тому, как в сторону: редиска не рекомендуемый способ для подключения PHP к Redis, как вы можете увидеть здесь: http://redis.io/clients его лучше использовать либо PHPRedis (расширение C) или Predis (написанный простым языком PHP). – Max

ответ

1

Q1 Как вы загружаете набор человек x следует за данными человека в набор данных redis?
вам нужно использовать набор в качестве структуры данных и забросить там индексы следующих людей. Например, предположим, что у вас есть 10 пользователей с идентификаторами от 1 до 10, и вы хотите сказать, что человек: 3, человек: 5 и человек: 10 все следующие лица: 2 ...

 
sadd person:2:followers 3 
sadd person:2:followers 5 
sadd person:2:followers 10 

Это дало бы вы множество последователей для человека 2, содержащий идентификаторы 3, 5 и 10. для того, чтобы запросить эти данные ...

 
smembers person:2:followers 

Q2 Как найти пересекаются и в конечном итоге с массивом PHP (лицо: х : подписчики & & человек: y: подписчики)?

 
sinterstore tmp person:2:followers person:8:followers 
sort tmp get person:*->name get person:*->age 

Q3 как бы вы пройти этот график данные, чтобы найти соотношение: человек х -> человек у -> человек г (лицо х и лицо г и следовать лицо у, следовательно, лицо г в наборе результатов)?

 
This question does not make sense (to me at least). Could you explain or reword it?