• ADADADADAD

    redis如何做多字段排序[ 建站问答 ]

    建站问答 时间:2024-12-01 19:17:53

    作者:文/会员上传

    简介:

    redis做多字段排序的示例:在redis编辑器中添加以下代码:package com.example.demo;import com.example.demo.common.Constant;import com.example.demo.mapper.QuestionAnswer

    以下为本文的正文内容,内容仅供参考!本站为公益性网站,复制本文以及下载DOC文档全部免费。

    redis做多字段排序的示例:

    在redis编辑器中添加以下代码:

    package com.example.demo;

    import com.example.demo.common.Constant;

    import com.example.demo.mapper.QuestionAnswerHistoryMapper;

    import com.example.demo.model.QuestionAnswerHistory;

    import com.example.demo.service.QuestionAnswerHistoryService;

    import com.example.demo.thread.BaseTest;

    import org.apache.commons.lang3.RandomUtils;

    import org.junit.Test;

    import org.springframework.beans.factory.annotation.Autowired;

    import java.math.BigDecimal;

    import java.util.List;

    /**

    * @author wzx

    * @time 2019/6/16

    */

    public class QuestionAnswerHistoryTest extends BaseTest {

    @Autowired

    private QuestionAnswerHistoryMapper historyMapper;

    @Autowired

    private QuestionAnswerHistoryService historyService;

    @Test

    public void test() {

    for (int i = 1; i < 101; i++) {

    QuestionAnswerHistory history = new QuestionAnswerHistory();

    history.setUserId((long) i);

    history.setAnswerFinish(true);

    BigDecimal bigDecimal = BigDecimal.valueOf(RandomUtils.nextDouble(0, 1))

    .setScale(2, BigDecimal.ROUND_HALF_UP);

    history.setCorrectRate(bigDecimal.doubleValue());

    history.setTimeConsumed(RandomUtils.nextInt(15, 50));

    history.setTimeConsumedMillisecond(RandomUtils.nextInt(0, 1000));

    history.setStatus(Constant.GenerictStatus.NORMAL);

    historyMapper.insert(history);

    }

    }

    @Test

    public void queryRanking() {

    Listranking = historyService.getRanking();

    for (QuestionAnswerHistory history : ranking) {

    System.out.println(history.getUserId() + "\t" + history.getCorrectRate() + "\t" + history.getTimeConsumed() +

    "\t" + history.getTimeConsumedMillisecond());

    }

    }

    @Test

    public void updateRank() {

    Long userId = 25L;

    //生成新的答题记录

    QuestionAnswerHistory history = new QuestionAnswerHistory();

    history.setUserId(userId);

    history.setAnswerFinish(true);

    BigDecimal bigDecimal = BigDecimal.valueOf(RandomUtils.nextDouble(0, 1))

    .setScale(2, BigDecimal.ROUND_HALF_UP);

    history.setCorrectRate(bigDecimal.doubleValue());

    history.setTimeConsumed(RandomUtils.nextInt(15, 50));

    history.setTimeConsumedMillisecond(RandomUtils.nextInt(0, 1000));

    history.setStatus(Constant.GenerictStatus.NORMAL);

    historyService.updateRank(history);

    }

    }

    输入结果:

    id 正确率 耗时

    74 0.94 38 151

    37 0.93 16 802

    97 0.92 31 475

    63 0.92 36 74

    35 0.92 39 516

    85 0.92 39 525

    17 0.9 19 821

    55 0.9 35 268

    64 0.89 37 39

    19 0.88 43 350

    49 0.86 25 373

    78 0.86 42 296

    76 0.84 19 399

    21 0.84 38 365

    54 0.83 26 7

    70 0.79 30 213

    20 0.78 18 112

    46 0.78 24 789

    27 0.76 23 195

    33 0.76 29 414

    7 0.75 20 661

    redis如何做多字段排序.docx

    将本文的Word文档下载到电脑

    推荐度:

    下载