redis如何做多字段排序
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
声明:本站所有作品(图文、音视频)均由用户自行上传分享,或互联网相关知识整合,仅供网友学习交流,若您的权利被侵害,请联系 管理员 删除。
本文链接:http://news.ew35.com/