redis sorted Set命令基本使用

场景:需要查询学生考试成绩情况

sorted Set数据默认排序是按分数的小到大排序的

zAdd 添加数据

$redis = new Redis();
$redis->connect('127.0.0.1', 6379); // 连接到Redis服务器

// 假设我们有10个学生和他们对应的分数
$students = [
    ['name' => 'Alice', 'score' => 85],
    ['name' => 'Bob', 'score' => 92],
    ['name' => 'Charlie', 'score' => 78],
    ['name' => 'David', 'score' => 95],
    ['name' => 'Eva', 'score' => 88],
    ['name' => 'Frank', 'score' => 90],
    ['name' => 'Grace', 'score' => 83],
    ['name' => 'Heidi', 'score' => 93],
    ['name' => 'Ivan', 'score' => 87],
    ['name' => 'Judy', 'score' => 91],
];

// 将学生添加到有序集合中
foreach ($students as $student) {
    $redis->zAdd('user_score', $student['score'], $student['name']);
}

zCard 获取有序集合的大小

// 获取有序集合的大小
$setSize = $redis->zCard('user_score');

zCount 获取60分到80分之间的成员数量

// 获取60分到80分之间的成员数量
$count = $redis->zCount('user_score', 60, 80);

zScore 获取指定同学的分数

// 获取指定同学的分数
$score = $redis->zScore('user_score', $studentName);

zIncrBy 给指定同学增加分数

// 假设我们要给名为"Alice"的同学加10分
$studentName = 'Alice';
$scoreIncrement = 10;

// 给指定同学增加分数
$newScore = $redis->zIncrBy('user_score', $scoreIncrement, $studentName);

zRem 删除名为"Alice"的学生

// 假设我们要删除名为"Alice"的学生
$studentName = 'Alice';

// 删除指定的学生
$deleted = $redis->zRem('user_score', $studentName);

zRemRangeByRank 删除排名最后的3名同学

// 删除排名最后的3名同学
$deletedCount = $redis->zRemRangeByRank('user_score', -3, -1);

zRemRangeByScore 删除分数在50分到60分之间的同学

// 删除分数在50分到60分之间的同学
$deletedCount = $redis->zRemRangeByScore('user_score', 50, 60);

zRank 获取指定同学的排名,小到大排

// 获取指定同学的排名
$rank = $redis->zRank('user_score', $studentName);

zRevRank 获取指定同学的逆序排名,大到小排

// 获取指定同学的逆序排名
$rank = $redis->zRevRank('user_score', $studentName);

zRevRange 查询分数最高的3名同学

// 获取分数最高的前3名同学
$topStudents = $redis->zRevRange('user_score', 0, 2, ['withscores' => true]);

zRange 获取分数最低的5名同学

//获取分数最低的5名同学
$lowestStudents = $redis->zRange('user_score', 0, 4, ['withscores' => true]);

zRangeByScore 获取60分以上的所有同学,分数小到大排序,60,61,62

// 获取60分以上的所有同学
$studentsAboveSixty = $redis->zRangeByScore('user_score', 60, '+inf', ['withscores' => true]);

zRevRangeByScore 获取60分以上的所有同学,分数倒序排序 100, 99, 98

// 获取60分以上的所有同学,分数倒序排序
$studentsAboveSixtyDesc = $redis->zRevRangeByScore('user_score', '+inf', 60, ['withscores' => true]);

相关推荐

  1. pip基本命令使用

    2024-05-02 09:56:02       37 阅读
  2. 汇编基础-----常见命令基本使用

    2024-05-02 09:56:02       14 阅读
  3. 【Linux基础命令使用

    2024-05-02 09:56:02       40 阅读
  4. linux 基础命令使用

    2024-05-02 09:56:02       12 阅读
  5. redis sorted Set命令基本使用

    2024-05-02 09:56:02       11 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-05-02 09:56:02       19 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-05-02 09:56:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-05-02 09:56:02       20 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-05-02 09:56:02       20 阅读

热门阅读

  1. 11、Flink 的 Keyed State 详解

    2024-05-02 09:56:02       12 阅读
  2. Kubernetes学习笔记01

    2024-05-02 09:56:02       13 阅读
  3. 关于HTML

    2024-05-02 09:56:02       15 阅读
  4. netty的继续学习一(相关概念)

    2024-05-02 09:56:02       13 阅读
  5. c#工控行业的视觉技术栈

    2024-05-02 09:56:02       11 阅读
  6. 串行化执行代码实践

    2024-05-02 09:56:02       12 阅读
  7. selenium之document.querySelector()方法

    2024-05-02 09:56:02       12 阅读
  8. Redis除了当缓存 | 你还能想到哪些高级用法?

    2024-05-02 09:56:02       11 阅读
  9. 探索图像边缘:使用Python进行轮廓检测

    2024-05-02 09:56:02       10 阅读
  10. 【软测学习笔记】MySQL入门Day01

    2024-05-02 09:56:02       10 阅读