public function handle()
{
$student = 'student_' . 5;
$key = 'student_score_1';
$key2 = 'student_score_2';
$redis = Redis::connection();
// echo '删除数据:' . $redis->del([$key]);exit;
// $data = [];
// for ($studentId = 1; $studentId <= 100; $studentId++) {
// $data['student_' . $studentId] = random_int(20, 100);
// }
//
// echo "添加数据:" . $redis->zadd($key, $data);exit; /*1*/
echo '参与人数:' . $redis->zcard($key) . "\r\n"; /*2*/
echo '80-100分人数:' . $redis->zcount($key, 80, 100) . "\r\n"; /*3*/
// echo '加分数:' . $redis->zincrby($key, 10, $studentId) . "\r\n"; /*4*/
//交集:默认情况下,结果集中某个成员的分数值是所有给定集下该成员分数值之和(sum|min|max)
echo '求交集:' . $redis->zinterstore('student_score_final', [$key, $key2], ['aggregate' => 'sum']) . "\r\n"; /*5*/
echo 'TODO:' . $redis->zlexcount($key, '[40', '[60') . "\r\n";//TODO::计算有序集合中指定字典区间内成员数量 /*6*/
echo '后三名:' . implode(' ', $redis->zrange($key, 0, 2)) . "\r\n"; /*7*/
echo '后三名带分数:' . json_encode($redis->zrange($key, 0, 2, ['withscores' => true])) . "\r\n"; /*7*/
echo '前三名:' . implode(' ', $redis->zrevrange($key, 0, 2)) . "\r\n"; /*15*/
echo '前三名(带分数):' . json_encode($redis->zrevrange($key, 0, 2, ['withscores' => true])) . "\r\n"; /*15*/
echo '80-100分的学生:' . json_encode($redis->zrangebyscore($key, '(84', 100)) . "\r\n";//带括号为开区间:84 < a <= 100 /*9*/
echo '80-100分的学生(带分数):' . json_encode($redis->zrangebyscore($key, '(84', 100, ['withscores' => true])) . "\r\n"; /*9*/
echo '正序索引:' . $redis->zrank($key, $student) . "\r\n";//索引 /*10*/
echo '倒序索引:' . $redis->zrevrank($key, $student) . "\r\n";//索引 /*17*/
// echo '删除学生:' . $redis->zrem($key, ['student_' . 1, 'student_' . 2]) . "\r\n"; /*11*/
// echo '删除排名区间:' . $redis->zremrangebyrank($key, 0, 0) . "\r\n"; /*13*/
// echo '删除分数区间:' . $redis->zremrangebyscore($key, 80, 100) . "\r\n"; /*14*/
echo '80-100分的学生:' . json_encode($redis->zrevrangebyscore($key, 100, 80)) . "\r\n"; /*16*/
echo '80-100分的学生(带分数):' . json_encode($redis->zrevrangebyscore($key, 100, 80, ['withscores' => true])) . "\r\n"; /*16*/
echo '学生分数:' . $redis->zscore($key, $student) . "\r\n";//某人多少分 /*18*/
//并集:默认情况下,结果集中某个成员的分数值是所有给定集下该成员分数值之和(sum|min|max)
echo '并集:' . $redis->zunionstore('student_score_final', [$key, $key2]) . "\r\n"; /*19*/
var_dump($redis->zscan($key, 0,['match' => 'stu*'])); /*20*/
}
