Redis и PHP (Rediska) пересекаются на множестве - PullRequest
0 голосов
/ 14 октября 2010

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

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

Мои вопросы:

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

1 Ответ

1 голос
/ 11 июня 2011

Q1 Как загрузить набор данных о человеке х, следующих за людьми y, в набор данных переадресации ?
вам нужно использовать набор в качестве структуры данных и добавить туда индексы людей, следующих за вами. Например, предположим, что у вас есть 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 (person: x: последователи && person: y: последователи) ?

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

Q3 как бы вы обошли эти графические данные, чтобы найти отношение: person x -> person y -> person z (person x и person z оба следуют за person y, следовательно, person z находится в наборе результатов)

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