redisはポイント別に友達を並べ替えます
2018 ワード
転載したネットユーザーのコードには、コメントが追加されています.
最終的な結果は次のとおりです.
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
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