私人vps网站的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
一诺网络提供的私人vps,是一款弹性计算服务类产品,其功能基本上与传统的x86物理服务器相当,具备分钟级交付效率,可快速部署和创建所需要的业务应用环境,服务器资源和配置支持弹性伸缩;拥有管理便捷、易于操作等诸多优点。可以极大降低用户的IT使用成本,用户无需亲自搭建基础设施、简化了运维和管理的日常工作量,使得用户能够更专注于自身的业务发展和创新。