redisはポイント別に友達を並べ替えます

2018 ワード

転載したネットユーザーのコードには、コメントが追加されています.
connect();
   $uid = 111;//    id
   $fried_uid_list = array(123,456,789,101);//         
   
   //     123,456,789,101  set    111:friend:list
   foreach ($fried_uid_list as $v)
   {
       $redis -> sadd($uid.':friend:list' ,$v);
   }
   
   //uid:sort:123 
   //uid      uid         set    uid:sort:uid111
   $redis->set('uid:sort:111',9000);
   $redis->set('uid:sort:123',1000);
   $redis->set('uid:sort:456',6000);
   $redis->set('uid:sort:789',100);
   $redis->set('uid:sort:101',5999);
  
   //uid info         
   $use_infor_list = array(
       111=>array('uid'=>111, 'name'=>'wgr'),
       123=>array('uid'=>123, 'name'=>'lucy'),
       456=>array('uid'=>456, 'name'=>'marry'),
       789=>array('uid'=>789, 'name'=>'ice'),
       101=>array('uid'=>101, 'name'=>'jack'),
       );
   foreach ($use_infor_list as $v)
   {
     //       set  , uid:111 uid:123 uid:456 
      $redis->set('uid:'.$v['uid'] , json_encode($v));
   }
   //sort          ,           
   $result = $redis->sort('111:friend:list by uid:sort:* get uid:* ' ); 
      
   var_dump($result);    
?>

最終的な結果は次のとおりです.
array(4) { [0]=> string(24) "{"uid":789,"name":"ice"}"[1]=> string(25) "{"uid":123,"name":"lucy"}"[2]=> string(25) "{"uid":101,"name":"jack"}"[3]=> string(26) "{"uid":456,"name":"marry"}"
関連参考資料:1、sort方法の詳細使用説明:http://redisdoc.com/key/sort.html(英)https://redis.io/commands/sort2、キーのワイルドカードの書き方説明KEYS pattern:http://redisdoc.com/key/keys.html(英)https://redis.io/commands/keys