我有redis中所有用户朋友的列表。 (每个用户,一个列表给他的朋友) 现在,我如何才能获得用户的朋友列表?
答案 0 :(得分:0)
我相信你能做得更好。一个想法是,获取用户的朋友并为每个朋友做同样的事情(得到他们的朋友)并通过维护每个用户的唯一性将他们推送到数组。
$redis = new Predis\Client(array(
'host' => '10.0.0.1',
'port' => 6379,
'password' => {PASS_KEY},
'database' => 0
));
$user = "key-to-user's-friends";
$userFriends = $redis->lrange($user, 0, -1);
$friendsOfFreinds = array();
foreach($userFriends as $friend){
$friendsFriends = $redis->lrange($friend, 0, -1);
foreach($friendsFriends as $friendFriend){
if(!in_array($friendFriend)){
$friendsOfFreinds[] = $friendFriend;
}
}
}
答案 1 :(得分:0)
这是neo4j更有效的用例。 请尝试检查一下:http://www.neo4j.org/learn/graphdatabase